VBA: Problem nach Sortierung einer Tabelle

Hallo Leute,
ich habe volgende Ausgangsituation:

ich habe ein Formular, in diesem navigiere ich in einer Tabelle mittels zwei Buttens:

Private Sub BtnVorBibliothek_Click()
On Error Resume Next
DoCmd.GoToRecord acForm, „RegistrieVerwalten“, acNext
End Sub
Private Sub BtnZurueckBibliothek_Click()
On Error Resume Next
DoCmd.GoToRecord acForm, „RegistrieVerwalten“, acPrevious
End Sub

In diesem Formular habe ich auch Textfelder deren Steuerelementinhalte jeweils die Spalten der Tabelle sind durch die ich mit den Buttens navigiere.

Die Tabelle kann sortiert werden durch einen weiteren Butten der diese Funktion aufruft:

Function TableSort()
On Error GoTo TableSort_Err

DoCmd.OpenTable „exportbibliothek“, acViewNormal, acEdit
DoCmd.RunCommand acCmdSelectAllRecords
DoCmd.RunCommand acCmdSortAscending
DoCmd.Close acTable, „exportbibliothek“

TableSort_Exit:
Exit Function

TableSort_Err:
MsgBox Error$
Resume TableSort_Exit

End Function

Nun zum Problem:
Nachdem ich die Tabelle sortiert habe und durch diese dann wieder mit meinen beiden buttens navigiere, wird in meinen Textfeldern immer noch die alte Reihenfolge angezeigt obwohl die Tabelle nun aufsteigend sortiert und abgespeichert wurde.
Wie bewerkstelige ich es nun, dass ich durch die umsortierte Tabelle navigiere???

Ich danke schon mal im voraus für die Antworten
MfG Iwan

Hallo Alpha,

das sieht mir nach Access-Vba aus. Sicher zu lösen aber Rainer hat kein Office :smile:)

Ich glaube nicht daß du hier eine Lösung erhälst. Gehe in die Brettbeschreibung und bitte den Mod dort um Verschiebung deiner Anfrage ins Access-Brett.

Gruß
Reinhard

Danke für die Antwort
Ich komme hier nicht klar. Wenn fragen wo?? habe jetzt auch keine zeit mehr bis morgen.
cu

Hallo,

Reinhard hat noch verschwiegen, daß ich von Access VBA gar keine Ahnung habe. Aber eventuell kann ich ja trotzdem helfen.

Nun zum Problem:
Nachdem ich die Tabelle sortiert habe und durch diese dann
wieder mit meinen beiden buttens navigiere, wird in meinen
Textfeldern immer noch die alte Reihenfolge angezeigt obwohl
die Tabelle nun aufsteigend sortiert und abgespeichert wurde.
Wie bewerkstelige ich es nun, dass ich durch die umsortierte
Tabelle navigiere???

Das Sortieren der Tabelle scheint demnach nur die Ansicht zu verändern, die Datensätze bleiben in der ursprünglichen Reihenfolge.

Dann hilft nur eine neue Abfrage …

SELECT * FROM Tabelle ORDER BY Sortierkriterium …

Aber wie die Syntax dafür in Access VBA aussehen muss habe ich keine Ahnung, das könnte ich nur mit VB6.

Soll ich Reinhards Vorschlag und meinen Beitrag löschen und Reinhards Rat folgen, die Frage nach Access verschieben? Experten für Access VBA sind hier wirklich rar, da hat Reinhard Recht.

Gruß Rainer

Hallo Rainer,

Reinhard hat noch verschwiegen, daß ich von Access VBA gar
keine Ahnung habe.

ja, das stimmt. Ich habe ja alles aufgelistet was du nicht weißt, aber die Anzahl der Bytes in einem Beitrag ist hier bei w-w-w begrenzt, deshalb beschränkte ich mich auf einen allgemeinen Hinweis zu Office.

*grien*

*sehrgrien*

Aber eventuell kann ich ja trotzdem helfen.

Eher als ich, das mit dem SELECT habe ich nie kapiert, aber zugegenermaßen mich damit auch noch nie beschäftigt.

Soll ich Reinhards Vorschlag und meinen Beitrag löschen und
Reinhards Rat folgen, die Frage nach Access verschieben?
Experten für Access VBA sind hier wirklich rar, da hat
Reinhard Recht.

Wenn es im Access-Brett so abläuft wie im Word-Brett, da bin ich allem Anschein nach, obwohl ich von Word keinerlei Ahnung habe, der fast Einzigste der mal eine Word-Vba Lösung präsentiert, sollte der Anfrager sowieso mal in einem Access-Forum nachfragen.

Lieben Gruß
Reinhard

Moin, Iwan,

DoCmd.RunCommand acCmdSortAscending
DoCmd.Close acTable, „exportbibliothek“

obwohl
die Tabelle nun aufsteigend sortiert und abgespeichert wurde.

das Sortieren glaube ich Dir, das Abspeichern nicht, das widerspräche jeglicher DB-Logik. Komischerweise finde ich zu den CMD-Parametern in meiner Hilfe keine Beschreibung.

Meiner Meinung nach solltest Du sortieren und die Tabelle nicht wieder schließen - wo soll die Sortierung denn sonst bleiben?

Gruß Ralf

Hallo Ralf,

die Tabelle nun aufsteigend sortiert und abgespeichert wurde.

das Sortieren glaube ich Dir, das Abspeichern nicht, das
widerspräche jeglicher DB-Logik. Komischerweise finde ich zu
den CMD-Parametern in meiner Hilfe keine Beschreibung.

Meiner Meinung nach solltest Du sortieren und die Tabelle
nicht wieder schließen - wo soll die Sortierung denn
sonst bleiben?

? Er sprach von Abspeichern nicht von Schließen. Andererseits, wenn ich in Excel sortiere so wird die neue Reihenfolge angezeigt, dann habe ich beim Abspeichern die Möglichkeit auszuwählen ob diese Änderungen übernommen werden oder nicht.
Was da in Access anders sein soll entzieht sich meiner bescheidenen Kenntnis.

Und zu den Docmd oder wie du sagst cmd parameter, vielleicht hta er eine andere Version als du?

Gruß
Reinhard

Hallo Ralf,

? Er sprach von Abspeichern nicht von Schließen.

dann zeigst Du mir bitte, wo im Code da was von Speichern
steht.

? ich weiß doch gar nicht genau was da im Code passiert :smile:

Ich meinte den Begleittext.

Was da in Access anders sein soll entzieht sich meiner
bescheidenen Kenntnis.

So ist es.

Sehr zustimm.

Und zu den Docmd oder wie du sagst cmd parameter, vielleicht
hta er eine andere Version als du?

Nein. Das sind die Parameter für den RunCommand, die die
Menüpunkte simulieren:
http://www.accessruncommand.com/index.htm

*aargs* ich bin zwar auch über den Tellerrand hinaus interessiert, aber das ist mir zuviel Englisch -(

Gruß
Reinhard

Hallo Rainer

„Das Sortieren der Tabelle scheint demnach nur die Ansicht zu verändern, die Datensätze bleiben in der ursprünglichen Reihenfolge.“

das war auch meine Vermutung. Aber wie ich eine ganze Tabelle mit SQL in Access(VBA) sortiere habe ich auch nicht die Ahnung aber danke für den Tipp. Werde es mal versuchen reinzukriegen.

MfG Iwan

Hi Iwan,

falls Du Probleme mit SQL hast, sieh Dir das mal bei MSDN an, ich finde das übersichtlich.

http://msdn.microsoft.com/de-de/library/ms188385.aspx

Gruß Rainer

Moin, Iwan,

wie ich eine ganze Tabelle mit SQL in Access(VBA) sortiere

db.execute „Select col1, col2, … from irchenzwo order by col1 [Ascending], col2 [Descending], …“

Gruß Ralf

Hallo Ralf
die Zeile funktioniert so nicht.
Fehlermeldung:open_mouth:bjekt erforderlich

Hallo Rainer
der link bring mir nichts. Ich muss wissen wie ich die SQL Anweisung in VBA zum laufen kriege.

MfG Iwan

Danke für den Versuch eine Lösung zu finden.
Ich habe das Problem jetzt umgangen.
Ich kenne mich in diesen Foren nicht wirklich aus. Aber ich glaube es ist üblich eine Anfrage zu schließen wenn sich die Problematik erledigt hat.

MfG Iwan

Hi, Iwan,

die Zeile funktioniert so nicht.
Fehlermeldung:open_mouth:bjekt erforderlich

vorher:

dim db as database
set db = currentdb

Gruß Ralf

Danke für den Versuch eine Lösung zu finden.
Ich habe das Problem jetzt umgangen.
Ich kenne mich in diesen Foren nicht wirklich aus. Aber ich
glaube es ist üblich eine Anfrage zu schließen wenn sich die
Problematik erledigt hat.

Hallo Iwan,

eine Rückmeldung wird in jedem Forum sehr gerne gesehen.

Noch besser, wie in deinem Fall, wenn du kurz beschreibst wie denn die andere Problemlösung aussieht, falls Andere später auch mal das problem haben oder auch so an problemlösungen interessiert sind.

Gruß
Reinhard

Hallo Reinhard
ich habe herausgefunden, dass es bei Access möglich ist sog. Abfragen zu kreiren, das sind ebenfalls Tabellen bei den ich die Sortierung vornehme ohne die Originaltabellen zu verändern. Dann kann ich diese Abfragen(sortierte Originaltabellen) bei Datenherkunft in den Formularen eintragen. Damit ist beim durchswitchen durch diese Abfragen bei den Textfeldern auch die sortierte Reihenfolge gegeben. Auch das Editieren der Originaltabellen ist weiterhin durch das Reinschreiben eines neuen Eintrags in das Textfeld möglich.

MfG Iwan

Moin, Iwan,

ich habe herausgefunden, dass es bei Access möglich ist sog.
Abfragen zu kreiren, das sind ebenfalls Tabellen bei den ich
die Sortierung vornehme ohne die Originaltabellen zu
verändern.

kleine Korrektur: Abfragen sind keine Tabellen, sondern Sichten, die nur für den Moment des Aufrufs bereitgestellt und nicht gespeichert werden. In anderen DMBS heißen diese Sichten meist Views.

Gruß Ralf