Abfrage mit VBA

starbug

Erfahrenes Mitglied
Hallo,

ich würde gerne wissen wie ich in Access eine Abfrage per VBA erstellen kann und dann
zusätzlich noch ein Kriterium übergeben kann was variabel sein muss.

Also generel würde ich ja sowas machen
Code:
    Dim db As DAO.Database
    Dim rec_adr As DAO.Recordset 

   Set rec_adr = db.OpenRecordset("SELECT * FROM Artikerl WHERE ArtikelNr = 1234")

Ich möchte das aber so haben, das wenn ich in meiner Artikelliste auf die ArtikelNr. doppleklicke sich die Abfrage öffnet und als Kriterium die angeklickte ArtikelNr übergeben wird. Wie kann man sowas machen?
 
Erstelle in Datasheet-Formular auf die Abfrage.
Dann kannst du dieses mit dem Filter öffnen

Visual Basic:
Sub openFilteredDS(ByVal artikelNr As Long)
    Dim myFilterString As String
    
    myFilterString = "ArtikelNr = " & artikelNr
    
    Call DoCmd.OpenForm("myFormName", acFormDS, , myFilterString)
End Sub
 
Ok ich hab das mal gemacht aber ändert sich nichts. der Filter schaltet sich zwar ein aber es ändert sich halt nichts. es wäre glaube ich auch besser wenn sich das neue Formular oder die Abfrage in einem neuen Fenster öffnet. Was könnte man da tun?
 
Ja, das ist leer. Da wird nix ausgeführt. Du musst schon mein Code anpassen und da reinkopieren. Ansonsten geht nix.
 
Ich weiss das es leer ist, ich wollte nur zeigen wo ich es eingefügt habe. Allerdings hast du ja bei deiner Methode nen String Parameter als Argument, den kann ich doch hier gar nicht einfügen da schon was anderes als Parameter übergeben wurde
 
Hier mal wich es angepasst habe:


Code:
Sub openFilteredDS(ByVal artikelNr As Sring)
    Dim myFilterString As String
    
    myFilterString =  Me.artikelNr
    
    Call DoCmd.OpenForm("Artikel_Form", acFormDS, , myFilterString)
End Sub

Nur da tut sich nichts.
 
Item: Wie nix? Es öffnet kein Fenster, es kommt keine ehlermeldung? Die Maus blockiert, er wie was wo?

Nebenbei, finde die 10 Unterschiede
Visual Basic:
'Dein Code
    myFilterString =  Me.artikelNr

'Mein Code
    myFilterString = "ArtikelNr = " & artikelNr
 
Du hast aber auch oben die Variable artikelNr als Long zugewiesen, oder meinst du mit "ArtikelNr"
den Namen des Textfeldes?: Kurze andere Frage: Ich müsste das doch auch mit SQL ausführen können, so etwa:

Code:
Private Sub PRDNO_DblClick(Cancel As Integer)

Dim sqlstring As String

sqlstring = "SELECT Master.ArtikelNr, Master.Artikel, Master.KundenNr, Master.Kunde, Master.Preis FROM Master"
        
DoCmd.RunSQL sqlstring


End Sub


Kommt aber immer ein Fehler und zwar: "Laufzeitfehler 3075 Syntaxfehler (fehlender Operator) in Abfrageasudruck Master.Preis".

Wieso ist das so?
 

Neue Beiträge

Zurück