Hallo Forengemeinde, ich habe eine Tabelle / Abfrage worin auch numerische Werte stehen. Nun muss ich per VBA in dieser Tabelle/Feld einen numerischen Wert suchen. Dies gelingt mir aber mit FindFirst, usw nicht, da FindFirst nach String sucht, und nicht numerisch. Es soll einfach in einer Tabelle, in dem Feld Versuch [Integer] eine bestimmte Zahl gesucht werden. Womit kann ich dies lösen? Bin auf Reha, und habe keine Bücher hier, und ist auch leider die Hilfe von VBA beschädigt, so dass ich auch hier nicht suchen kann.
Du könntest das DAO-Objekt in VBA einbinden, dann versteht VBA auch SQL-Befehle. Damit kannst Du außerdem wesentlich präzisere Datenbankabfragen erstellen, außerdem funktioniert es mit diversen Datentypen wie string, integer, long etc. Das ist nicht einmal sonderlich kompliziert, aber zu umfangreich, um es hier darzustellen. Im Internet wirst Du unter DAO-Objekt und SQL fündig, da findest Du auch Code-Beispiele für VBA.
Irgendwie so:
1 | private sub showQueryData |
2 | dim db as dao.database |
3 | dim rs as dao.recordset |
4 | dim sqlStr as string |
5 | |
6 | sqlStr = "SELECT * FROM TabelleMitDaten WHERE FeldMitNummer = 122" |
7 | |
8 | set db = currentDb |
9 | set rs = db.openRecordset(sqlStr) |
10 | ' rs hat jetzt alle Treffer mit Nummer 122 |
11 | rs.movefirst |
12 | |
13 | do while not rs.EOF '(EOF = End Of File) |
14 | ' hier kommt der Code für jeden Treffer |
15 | debug.print("the ID: " & rs!id & " Daten Name: " & rs!name) |
16 | rs.movenext |
17 | loop |
18 | |
19 | msgbox("End of TabelleMitDaten") |
20 | end sub |
Und bitte prüfen, ob die Datei DAO360.dll im SYSWOW64-Ordner vorhanden ist.
Es ging dann doch mit folgendem Code:
1 | If Versuch_gefunden = False Then |
2 | ' Suchen, wie viele Rettungsversuche dieser Datei bereits erfasst wurden |
3 | Do |
4 | SektDefTb.FindFirst "Datei_ID = " & DateiID & " AND " & "Versuch = " & Int_VersuchCount |
5 | If SektDefTb.NoMatch = True Then |
6 | Versuch_gefunden = True |
7 | Exit Do |
8 | End If |
9 | Loop While ZielTb.NoMatch |
10 | Int_VersuchCount = Int_VersuchCount + 1 |
11 | End If |
Int_VersuchCount ist hier mein Problemfall gewesen. Dieser ist ein Int-Wert, und wird dann auch so in der DB gespeichert. Ich habe dies auch irgendwo im Netz gefunden. Aber auf die Syntax mit doppelten und einfachen Hochzeichen muss man erstmal draufkommen. Da fehlt mir zugegeben noch Hintergrundwissen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.