Access/VBA -> SQL-Abfrage auswerten

Slizzzer

Erfahrenes Mitglied
Hallo!

Hab gerade ein Brett vorm Kopf. Kann das mal einer abmachen?

Folgendes Problem:
Ich habe ein Formular in dem ein Mitarbeiter, ein Monat und eine Jahreszahl jeweils aus Listenfeldern ausgewählt werden.
Nun will ich über die Aktion "Beim Klicken" oder "Nach Aktualisierung" eine SQL-Abfrage ausführen, die prüft, ob ein Datensatz in der Kombination wie ausgewählt schon existiert.

Mit den folgenden beiden Zeilen führt er zwar eine Abfrage durch, aber wie erhalte ich nun das Ergebnis (1 oder 0, Datensatz vorhanden oder eben nicht)?

SQL = "SELECT * FROM tabNachweise WHERE MAID='" & Me!lstMitarbeiter & "' AND Monat='" & Me!lstMonat & "' AND Jahr='" & lstJahr & "';"
DoCmd.RunSQL SQL

Unter PHP/MySQL gibt es ja mysql_affected_rows() z.B.

Wie stelle ich gleiches mit VBA an?

Gruß
Slizzzer
 
Danke für den Tipp!

Hab jetzt mal in der Onlinehilfe rumgefummelt. Ist das in VBA immer so aufwendig?
Was da so an Beispielen zu finden ist, hat ja mindestens 10-15 Zeilen Code?!

Gebacken gekriegt hab ich es auch noch nicht.

Naja. mal gucken ob ich das noch hinbekomme. Sonst eben Fenster auf und raus damit.
 
Der Code besteht aber auch aus Fehlerbehandlungsprozeduren, die m.E. auch wichtig sind.

Ich finde es nicht viel, vielleicht habe ich mich auch schon daran gewöhnt.
 
So, hab da mal was abgekupfert. Nur wenn ich die Aktion dann ausführe erhalte ich die Fehlermeldung "Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert." und dann wird im Editor die Stelle "Dim db As Database" markiert.
Hatte mich schon gewundert, das der Eingabeassistent Database nicht zur Auswahl anbot.
Gemäß Onlinehilfe gibt es den Datentyp Database doch?!

Any ideas?

Gruß
Slizzzer

Private Sub lstMitarbeiter_Click()
Dim sql As String
Dim db As Database, Liste As Recordset

sql = "SELECT * FROM tabNachweise WHERE MAID='" & Me!lstMitarbeiter & "' AND Monat='" & Me!lstMonat & "' AND Jahr='" & Me.lstJahr & "'"
Set db = CurrentDb
Set Liste = dbOpenRecordset(sql, dbOpenSnapshot)
If Liste.RecordCount > 0 Then
Me!cmdWeiter.Enabled = False
Else
Me!cmdWeiter.Enabled = True
End If
End Sub
 
Huch? Watt nu? :)

Das er Database nicht akzeptierte hab ich jetzt geklärt:
Die DAO Object Library war unter "Verweise" nicht aktiviert.
"Database" ist wohl ein Auslaufmodell.

Hat mich aber auch nicht weiter gebracht, denn jetzt pupt der Debugger bei dbOpenRecordset und folgenden Zeilen rum!

Egal, habe es erstmal über eine "Krücke" gelöst. Wie sach ich lieber nich :) .
Hauptsache der Teil läuft. Später kann ich da immer noch rumbasteln.

Gruß
Slizzzer
 

Neue Beiträge

Zurück