Supportnet / Forum / Datenbanken
Per VBA an Wert aus Abfrage zugreifen
Frage
Hallo Zuammen
ich habe mal wieder ein Problem.
Ich will in einer MsgBox einen Wert der in einer schon vorhandenen
Abfrage [Liences - Overview] ausgeben. Jedoch gibt der mir immer die Fehlemldung aus, dass dem wohl ein Parameter fehlt, wenn ich es laufen lassen.
Den unteren code habe ich auch fast komplett aus einer Vorlage:
[url]http://www.dbwiki.de/wiki.php?title=Access_Anf%E4nger:_Wie_greife_ich_in_VBA_auf_die_Werte_einer_Tabelle_zu%3F[/url]
[code]Private Sub Licence_BU_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL As String
Dim free, lent As Integer
If (Me.Licence_BU <> "") And (IsNull(Me.Licence_BU) = False) Then
Set db = CurrentDb ' Datenbank definieren
strSQL = "SELECT * FROM [Licences - Overview - All BUs and their Licences] WHERE [Licence BU]='" & Forms!Userdetails_FORM!Licence_BU.Value & "'" 'SQL definieren
Set rs = db.OpenRecordset(strSQL) ' Recordset öffnen
If Not rs.EOF Then rs.MoveFirst ' Zum ersten Datensatz
Do While Not rs.EOF ' Schleife über die Datensätze des Recordsets
lent = rs![# Licences lent TO] ' Wert auslesen
Loop
MsgBox ("DAS SOLL DER ANZEIGEN:" & lent)
rs.Close
Set rs = Nothing
Set db = Nothing
End If
End Sub[/code]
Fehlermeldung:
[i]Laufzeitfehler 3601:
1 Parameter wurden erwartet, aber es wurden zu wenig übergeben![/i]
Hilfe
Grüße
Roland
Antwort 1 von Booyeoo
Bücher sind manchmal gar nicht sooo schlecht ;-)
Warum einfach, wenns auch kompliziert geht.....
So sieht die Lösung meines Problems aus
Warum einfach, wenns auch kompliziert geht.....
So sieht die Lösung meines Problems aus
Private Sub Licence_BU_Click()
Dim Query, Criteria, Search As String
Dim free, lent As Integer
Search = "[# Licences lent TO]"
Query = "[Licences - Overview - All BUs and their Licences]"
Criteria = "[Licence of BU]='" & [Forms]![Userdetails_FORM]![Licence_BU] & "'"
lent = (DLookup(Search, Query, Criteria))
Search = "[# Free Licences]"
free = (DLookup(Search, Query, Criteria))
MsgBox (free - lent)
End Sub