Ersten Datensatz einer Abfrage ermitteln (AC2003)

Hallo,

ich möchte per VBA den Primärschlüssel(ID) des ersten Datensatzes einer Abfrage ermitteln. Hätte jemand eine Idee hierfür?

Vorab Danke

Gruß
Ronny

Hallo,

ich möchte per VBA den Primärschlüssel(ID) des ersten
Datensatzes einer Abfrage ermitteln. Hätte jemand eine Idee
hierfür?

Ja,

poste aber erst den SQL-String der Abfrage und erzählen, wofür und warum Du denPS des „ersten“ DS brauchst…

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Moin, Ronny,

in einer relationalen Datenbank gibt es keinen ersten Datensatz, sondern nur einen, der in irgend einer Spalte Deiner Wahl den kleinsten (resp. größten) Wert unter allen vorkommenden hat.

Gruß Ralf

Hallo,

Dim db As Database
Dim rst1 As Recordset
Dim intID As Integer
Set rst1 = db.OpenRecordset(„Name der Abfrage“, dbOpenSnapshot)
rst1.MoveFirst
intID = rst1!ID
rst1.Close
Set rst1 = Nothing
db.Close
Set db = Nothing
MsgBox(intID)

oder so in der Art.

MfG,

ujk

Hallo,

die Erklärung für mein Vorhaben, den ersten DS einer Abfrage zu finden (auch wenn es wohl, wie angemerkt wurde, keinen ersten DS gibt) ist Folgende:
Ich lasse im Formular im Rahmen eines UFO eine Übersicht aller Datensätze in Listenform per Abfrage anzeigen. Im selben HFO befindet sich ein 2.UFO für die Detailansicht. Klickt man im UFO „Liste“ auf den Datensatzmarkierer wird der komplette Datensatz im anderen UFO „Detail“ entsprechend angezeigt. Funzt auch wunderbar.

ABER: Im UFO „Detail“ wird immer der zuletzt aufgerufene Datensatz angezeigt. Im UFO „Liste“ steht aber beim Aufruf des HFO der Datensatzmarkierer grundsätzlich an oberster Stelle, d.h. die Position des Datensatzmarkierers im UFO „Liste“ stimmt nicht mit der Detailansicht des UFO „Detail“ überein, was zu Verwirrungen führt.
Da der Datensatzmarkierer immer an 1.Stelle steht war meine Idee, ich ermittle einfach den 1.Datensatz des UFO „Liste“ bzw. der entsprechenden dahinterliegenden Abfrage und lass diesen im UFO „Detail“ beim Aufrufen des HFO anzeigen.

Dank Voraus

Gruß
Ronny

Hallo,

die Erklärung für mein Vorhaben, den ersten DS einer Abfrage
zu finden (auch wenn es wohl, wie angemerkt wurde, keinen
ersten DS gibt) ist Folgende:
Ich lasse im Formular im Rahmen eines UFO eine Übersicht aller
Datensätze in Listenform per Abfrage anzeigen. Im selben HFO
befindet sich ein 2.UFO für die Detailansicht. Klickt man im
UFO „Liste“ auf den Datensatzmarkierer wird der komplette
Datensatz im anderen UFO „Detail“ entsprechend angezeigt.
Funzt auch wunderbar.

Wie machst Du das?

Warum benutzt Du dafür zwei UFO’s ?

ABER: Im UFO „Detail“ wird immer der zuletzt aufgerufene
Datensatz angezeigt.

Auch nach erneutem Öffnen es Forms?

Wie sind denn die UFOs mit dem HFo verknüpft?

Im UFO „Liste“ steht aber beim Aufruf des
HFO der Datensatzmarkierer grundsätzlich an oberster Stelle,
d.h. die Position des Datensatzmarkierers im UFO „Liste“
stimmt nicht mit der Detailansicht des UFO „Detail“ überein,
was zu Verwirrungen führt.

Eben sollten die UFO-Eigenschaften „Verknüpfen von/nach“ benutzt werden, dafür sind die da…

Da der Datensatzmarkierer immer an 1.Stelle steht war meine
Idee, ich ermittle einfach den 1.Datensatz des UFO „Liste“
bzw. der entsprechenden dahinterliegenden Abfrage und lass
diesen im UFO „Detail“ beim Aufrufen des HFO anzeigen.

Benutz das Form_Current-Ereignis, um das zweite UFO zu synchronisieren.

Besser aber wie gesagt wäre eine Verknüpfung über die Schlüsselfelder.

z. B.

im UFO2

Verknüpfen von: ID
Verknüpfen nach: Parent!Ufo1!ID

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hiho,

ich habe UFO „Liste“ mit UFO „Detail“ per

Private Sub Form_Click()
Me.Parent![Mißbrauch].Form.Filter = "[ID] = " & Me!ID
Me.Parent![Mißbrauch].Form.FilterOn = True
End Sub

verknüpft. War glaube ich sogar Dein Tip in diesem Forum :wink:

Die Sache mit den 2 UFOs hatte sich angeboten, da es sich um eine Zweigeteilte DB handelt ähnlich dem NortonCommander etc. Ich hätte statt des UFO „Detail“ auch ein Popup machen können, aber es war genug Platz im Datenbankfenster und somit übersichtlicher.

Das Problem ist, dass die ID im Filter des UFO „Detail“ solange stehen bleibt, bis ein neuer DS im UFO „Liste“ angeklickt wird, weshalb immer der zuletzt aufgerufene DS angezeigt wird.
Aus dem Grund möchte ich die ID des ersten DS der Abfrage im UFO „Liste“ auslesen, um sie an den o.g. Code bzw. den Filter des UFO „Detail“ übergeben zu können.

Gruß
Ronny

Hallo,

Das sind zwei verschiedenen Sachen.

Der Code FILTERT das UFO,

Du benötigst aber eine SYNCHRONISATION.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hiho und danke für den Hinweis,
hab dazu was bei donkarl unter http://www.donkarl.com/FAQ/FAQ4Formulare.htm#4.3 gefunden.

Werde es mal probieren.

Gruß
Ronny