Oktober 20, 2020, 10:20:05

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


SQL im "Beim Öffnen" Ereignis

Begonnen von Jan.T, Oktober 15, 2020, 15:57:29

⏪ vorheriges - nächstes ⏩

Jan.T

Oktober 15, 2020, 15:57:29 Letzte Bearbeitung: Oktober 15, 2020, 16:28:44 von Jan.T
Moin moin!

Ich möchte in meiner DB in einem Formular bei dem "Beim öffnen" Ereignis, SQL Code ausführen und damit 1-2 Felder aus einer tbl in das Formular einfügen, das muss auf jedenfall das beim Öffnen Ereignis sein, da das Formular geöffnet wird, sobald sich ein Bestimmter User mit einer bestimmten ID (In meinem Fall 2) Anmeldet, dafür hab ich folgendes getan:
Der User wird mit einem Login Formular begrüßt wo er seinen Namen und seine Abteilung auswählt, das wichtige hierbei ist die Abteilung, weil die ID der Abteilung die ausgewählt wird, wichtig ist für den nächsten Schritt.
Danach kommt meine If Anweisung
If cboAbteilung.Value = 2 Then
DoCmd.OpenForm "frmAbteilung2"
Else: DoCmd.OpenForm "testFormular1"
End If
End Sub
(Das steckt noch in den Kinderschuhen und ich teste noch, deswegen solche Formularbezeichnungen)
Wenn sich nun das frmAbteilung2 öffnet, möchte ich das bestimmte DS aus anderen Tabellen direkt dort im Formular angezeigt werden, ich dachte ich kann das ganz easy mit SQL erledigen wenn ich ein "Beim Öffnen" ereignis mache, aber das scheint nicht zu funktionieren. Vielleicht hab ich mir das zu einfach vorgestellt?
Das hab ich versucht:
Option Compare Database
Option Explicit

Private Sub Form_Open(Cancel As Integer)
    Dim AufträgeAnzeigen As String
    AufträgeAnzeigen = "SELECT BestNr FROM tblAufträge WHERE ID = 3 "
    CurrentDB.Execute AufträgeAnzeigen, dbFailOnError
End Sub
Anscheinend reicht das nicht, oder das funktioniert nicht in einem Formular, denn ich bekomme jedesmal den Laufzeitfehler '3065' 'Eine Auswahlabfrage kann nicht ausgeführt werden'
Hat einer eine Idee, kann man das vielleicht auch anders machen?

mfg
Jan

MzKlMu

Oktober 15, 2020, 19:37:37 #1 Letzte Bearbeitung: Oktober 15, 2020, 19:51:11 von MzKlMu
Hallo,
warum bindest Du das 2. Formular nicht einfach an die Abfrage dann braucht es keinen Code beim Öffnen.
Mit
CurrentDB.Execute würde das gar nicht gehen, das wird ausschließlich für Aktionsabfragen verwenden.
Du musst die Abfrage als Datenherkunft zuweisen.

Private Sub Form_Open(Cancel As Integer)
    Me.RecordSource = "SELECT BestNr FROM tblAufträge WHERE ID = 3 "
End Sub
Wobei die Abfrage aber nur 1 Feld enthält und nicht 2. Aber wie gesagt, das Formular an die Abfrage binden ist einfacher.
Gruß
Klaus