Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: -------> Neu: dotNet & Visual Studio Forum <-
Auswahlabfrage mit vba starten
Gehe zu Seite 1, 2  Weiter
zurück: Pivot Tabelle mit Dynamischen Datenbereich weiter: 2 Fragen zu XML-Abfragen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Offen Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Olli__
Gast


Verfasst am:
05. Jul 2005, 15:33
Rufname:

Auswahlabfrage mit vba starten - Auswahlabfrage mit vba starten

Nach oben
       

Wie starte ich denn eine Auswahlabfrage in VBA ???

Hatte es mit runsql probiert aber das funzt nicht.
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. Jul 2005, 16:10
Rufname:
Wohnort: Berlin


AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Was willst Du denn konkret erreichen? Wenn Du wirklich nur die Abfrage öffnen willst, geht es mit
Code:
    DoCmd.OpenQuery "DeineAbfrage"

mfg Rita
Olli__
Gast


Verfasst am:
05. Jul 2005, 16:20
Rufname:

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Hi Rita,

versuche eine abfrage die in access so schon funktioniert über vba zu starten.
Kann dir ja mal mein code posten denn leider funzt da auch mit openQuery nichts. er sagt mir immer das er das objekt nicht finden kann.
Code:
Private Sub btn_Berechnung_Click()
    Dim sql1 As String
   
    sql1 = "SELECT [04_07_2005_1].SITE_ID, " & _
                  "Sum([Quantity]*[Zuzahlung]) AS Gesamt" & _
           "FROM 04_07_2005_1 " & _
                "INNER JOIN Kosten " & _
                "ON [04_07_2005_1].GIFT_ID = Kosten.ArtNr" & _
           "GROUP BY [04_07_2005_1].SITE_ID" & _
           "HAVING [04_07_2005_1].SITE_ID <> 5000 " & _
           "AND Sum(Kosten.Zuzahlung Is Not Null" & _
           "ORDER BY [04_07_2005_1].SITE_ID"
    DoCmd.OpenQuery sql1
End Sub
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. Jul 2005, 16:29
Rufname:
Wohnort: Berlin

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

OpenQuery funktioniert nur bei einer abgespeicherten Abfrage. Wenn die SQL (wie es aussieht) keine variablen Werte enthält, kannst Du sie doch als Abfrage abspeichern und dann mit OpenQuery öffnen.

Allerdings finde ich es immer besser, die Daten in einem Formular anzuzeigen. Wenn Du das Formular in Datenblattansicht öffnest, merken die Nutzer nicht einmal den Unterschied:
Code:
    DoCmd.OpenForm "Formularname", acFormDS, Openargs:=sql1
Und im Form_Open-Ereignis schreibst Du:
Code:
    Me.Recordsource = Me.OpenArgs

mfg Rita
Olli__
Gast


Verfasst am:
05. Jul 2005, 16:46
Rufname:


AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Hi Rita,

leider sind die Formulare auf die die auswertung basiert variabel, das konntest du aber nicht wissen,da ich das noch nicht angepasst hatte. Hast du dafür vielleicht eine Lösung, denn die ergebnisse muss ich ja auch noch irgendwo speichern und auch damit bin ich grad total überfordert.
Olsen
newbie


Verfasst am:
05. Jul 2005, 17:51
Rufname:

Help - Help

Nach oben
       

Habe es jetzt soweit hingebastelt bekommen, nur läuft jetzt eine Abfrage in VBA nicht die aber in Access sql funktioniert. Er sagt mir immer missing operator .....

muss ich die abfrage in vba etwas anders schreiben als in access-sql??

Abfrage ist folgende:
Code:
    sql1 = "INSERT INTO rrr(SITE_ID, Summe)" & _
           "SELECT [04_07_2005_1].SITE_ID, Sum([Quantity]*[Zuzahlung])" & _
           "FROM 04_07_2005_1 " & _
                "INNER JOIN Kosten " & _
                "ON [04_07_2005_1].GIFT_ID = Kosten.ArtNr" & _
           "GROUP BY [04_07_2005_1].SITE_ID" & _
           "HAVING [04_07_2005_1].SITE_ID <> 5000 " & _
           "AND Sum(Kosten.Zuzahlung) Is Not Null" & _
           "ORDER BY [04_07_2005_1].SITE_ID"
    DoCmd.RunSQL sql1
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
05. Jul 2005, 19:17
Rufname:
Wohnort: Berlin

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Leider sehe ich Deiner sql nicht an, welche Werte variabel sind. Die darfst Du in VBA nämlich nicht in Anführungszeichen schreiben, da sie so nicht erkannt werden. Sinngemäß geht es so (nur als Beispiel):
Code:
    SQL = "SELECT * FROM Tabelle " & _
          "WHERE Feld1 = " & var                ' wenn var numerisch
'         "WHERE Feld1 = ' " & var & " ' "       ' wenn var Text ist

Übrigens ist es ein Irrtum, dass Du die Ergebnisse einer Abfrage speichern musst. Du erhältst sie doch jedes Mal ganz aktuell, sobald Du die Abfrage ausführst. Bei abgespeicherten berechneten Werten weißt Du doch nie, ob sich die Daten in der zugrundeliegenden Tabelle inzwischen geändert haben. Sinnvoll wäre natürlich ein Bericht, den man dann ausdrucken kann.

mfg Rita
Olsen
newbie


Verfasst am:
06. Jul 2005, 09:32
Rufname:

Help ... - Help ...

Nach oben
       

Hallo Rita ...

habe die Abfrage mal so hingebastelt das sie sich jetzt auf die variablen Werte bezieht, nur komme ich mit der VBA syntax in sql Abfragen noch gar nicht klar.

Mein Code sieht so aus:
Code:
    Dim sql1 As String
    Dim sql_create As String
    Dim counter As Long
    Dim PMT As String
    Dim RT As String

    PMT = Me!Kombi_Praemien_Masterliste
    RT = Me!Kombi_Redemption_Tabelle
    counter = counter + 1
    If ExistObject(RT & counter, 0) Then
        DoCmd.DeleteObject acTable, RT & counter
    End If
    sql_create = "CREATE TABLE " & RT & counter & _
                                               " (SITE_ID LONG, Summe DOUBLE)"
    sql1 = "INSERT INTO " & RT & counter & "(SITE_ID, Summe) " & _
           "SELECT SITE_ID, Sum([Quantity]*[Zuzahlung]) " & _
           "FROM " & RT & _
               " INNER JOIN " & PMT & _
               " ON " & RT & ".GIFT_ID = " & PMT & ".ArtNr " & _
           "GROUP BY SITE_ID " & _
           "HAVING (SITE_ID) <> 5000 " & _
           "AND Sum( " & PMT & ".Zuzahlung) Is Not Null " & _
           "ORDER BY SITE_ID"
    DoCmd.RunSQL sql_create
    DoCmd.RunSQL sql1
und in dem Stück meckert VBA über syntax error in query expression: " & PMT & " ON " & RT & ".GIFT_ID = " & PMT & ".ArtNr "
habe auch schon alles mögliche versucht aber finde den Fehler einfach nicht Sad

Vielleicht weiß jem weiter .....
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
06. Jul 2005, 15:38
Rufname:
Wohnort: Berlin

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Ein Tipp:

Setze einen Testpunkt auf
Code:
    DoCmd.RunSQL sql_create
und sieh Dir an, wie Dein SQL1 aufgelöst aussieht. Vielleicht fällt Dir dann was auf. Du kannst auch eine neue Abfrage anlegen und dort den SQL-String reinkopieren. Wenn Du die Abfrage versuchst abzuarbeiten gibt er meist sinnvollere Fehlermeldungen aus.

mfg Rita
Olsen
newbie


Verfasst am:
06. Jul 2005, 15:48
Rufname:

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Danke Rita ....

habs jetzt raus bekommen Idea

lag an den eckigen Klammern die VBA anscheinend ganz dringend um die variablen Werte braucht ....

Gruß Olsen
ChrisFun
Access Einsteiger


Verfasst am:
03. Sep 2012, 10:22
Rufname:

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       Version: Office 2003

Hallo,

ist zwar ein alter Thread passt aber zu meinem Problem.

Ich habe ein VBA-Programm geschrieben, dass eine Excel-Tabelle einliest und dann in Access die Datensätze erstellt.
Die Datensätze werden in Access in der Tabelle tblDessau erstellt.

Außerdem gibt es in Access noch die Tabelle tblWerk. tblWerk enthält Informationen, die ich für den neu erstellten Datensatz in tblDessau brauche. Dabei handelt es sich um das Feld werk_EX_ID.

So jetzt zu meinem eigentlichen Problem. Ich lese also die Excel-Tabelle ein und dabei lese ich auch eine Seriennummer ein. Die Seriennummer speicher ich in einer Variablen (Seriennr) und möchte sie in der nachfolgenden Abfrage verwenden.
Code:
                strSQL = "SELECT werk_EX_ID, werk_GTO_ID_Ausbau, werk_Datum " & _
                           "FROM tblWerk " & _
                          "WHERE tblWerk.werk_GTO_ID_Ausbau =  ' " & Seriennr & " ' " & _
                            "AND Exists (SELECT werk_EX_ID_f " & _
                                          "FROM tblDessau " & _
                                         "WHERE tblWerk.werk_EX_ID = werk_EX_ID_f)=False " & _
                       "ORDER BY werk_Datum DESC;"
                DoCmd.RunSQL strSQL
Mit der Abfrage möchte ich zum einen überprüfen, ob in der tblWerk eine Seriennummer mit der eingelesen Seriennummer vorhanden ist. Zum anderen will ich überprüfen, wenn ein entsprechender Eintrag gefunden wurde, ob die werk_EX_ID nicht schon für einen älteren Eintrag in tblDessau verwendet wird.

Wenn ich das Programm so ausführe, kriege ich die Meldung "Eine AusführenSQL-Aktion erfordert ein Argument, das aus einer SQL-Anweisung besteht".
Lasse ich die Rundenklammern weg, kriege ich die Meldung "Syntaxfehler ..."

Hoffe mir kann jemand helfen bei der SQL-Anweisung

Danach möchte ich noch das Feld werk_EX_ID aus der obigen Abfrage in den gerade angelegten Datensatz schreiben. Kann mir jemand sagen mit welchem Befehl das funktioniert?


Vielen Dank,
Chris
Thom_CH
Im Profil kannst Du frei den Rang ändern


Verfasst am:
03. Sep 2012, 11:03
Rufname: Thom
Wohnort: Chur Schweiz

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Hallo ChrisFun

versuchs mal mit:
Zitat:
WHERE Not EXISTS
ich glaube das mit (...) = false kennt SQL nicht.

fg
Thom

_________________
Wenn alle anderen von der Brücke springen,...
dann stimmt etwas mit der Brücke nicht, also SPRING!
Marmeladenglas
komme zurecht


Verfasst am:
03. Sep 2012, 11:21
Rufname:

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

@Tom_Ch: da liegst du falsch

@Chrisfun:
Zitat:
Mit der AusführenSQL-Aktion können Sie eine Microsoft Access-Aktionsabfrage (Aktionsabfrage: Eine Abfrage, die Daten kopiert oder ändert. Aktionsabfragen sind Anfüge-, Lösch-, Tabellenerstellungs- und Aktualisierungsabfragen. Sie sind im Navigationsbereich durch ein Ausrufezeichen (!) neben ihrem Namen gekennzeichnet.) ausführen
Eine Auswahlabfrage ist keine ausführbare Abfrage !
Ungefähr so:
Code:
    Dim rs As DAO.Recordset
    Dim lngWerk_Ex_ID As Long
   
    strSQL = "SELECT W.werk_ex_ID" _
            & " FROM tblWerk AS W" _
                 & " INNER JOIN tbldessau AS D" _
                 & " ON W.werk_ex_ID = D.werk_ex_IF_F" _
           & " WHERE W.werk_GTO_ID_Ausbau = '" & Seriennr & "'"
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If rs.BOF Then
        'kein Eintrag gefunden
      Else
        'Eintrag gefunden
        lngWerk_Ex_ID = rs(0) ' kann es pro Seriennummer mehrere _EX_ID's geben ??
        Me.DeinFeld = lngWerk_Ex_ID 'würde den Wert in ein Formularfeld schreiben
    End If
    rs.Close
    Set rs = Nothing
Eine Anfügeabfrage macht das ganze VBA überflüssig und die gefundenen Ex_ID's können per Anfügeabafrage in die Zieltabelle geschrieben werden.
ChrisFun
Access Einsteiger


Verfasst am:
03. Sep 2012, 12:39
Rufname:

AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Hallo Marmeladenglas,

erstmal danke für deine Hilfe.
Ja es kann vorkommen, dass eine Seriennummer mehrere werk_EX_IDs besitzt in tblWerk
Marmeladenglas
komme zurecht


Verfasst am:
03. Sep 2012, 12:59
Rufname:


AW: Auswahlabfrage mit vba starten - AW: Auswahlabfrage mit vba starten

Nach oben
       

Hi,
tja und welche willst du dann schreiben ?
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage nur mit gleicher Lagernummer berechnen 1 armin0_1 289 31. Aug 2009, 22:39
astern Auswahlabfrage nur mit gleicher Lagernummer berechnen
Keine neuen Beiträge Access Tabellen & Abfragen: Sortierung von 'von rechts nach links' in Auswahlabfrage 12 fizlipuzli 614 11. Aug 2009, 21:35
MiLie Sortierung von 'von rechts nach links' in Auswahlabfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage mit Leerzeilen 3 Kraven 288 01. Jul 2008, 15:12
JoachimG Auswahlabfrage mit Leerzeilen
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage inkonsistente Daten 3 JoachimG 904 21. Apr 2008, 13:35
JoachimG Auswahlabfrage inkonsistente Daten
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2000 Auswahlabfrage - Suche Kriterien 1 Huje 3122 07. Feb 2008, 17:29
Marmeladenglas Access 2000 Auswahlabfrage - Suche Kriterien
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage:Rechnen mit dem Datum in einer Wenn Bedingung 3 Tilux 3364 21. Jan 2008, 18:04
KlausMz Auswahlabfrage:Rechnen mit dem Datum in einer Wenn Bedingung
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage starten über Listfeld 1 JoSch1 511 09. Okt 2007, 15:55
derArb Abfrage starten über Listfeld
Keine neuen Beiträge Access Tabellen & Abfragen: Auswahlabfrage variieren 13 Konter 695 15. Apr 2007, 07:21
blicki Auswahlabfrage variieren
Keine neuen Beiträge Access Tabellen & Abfragen: Module starten mittels Makro? 8 Thorstenr 11644 14. Feb 2007, 16:06
Thorstenr Module starten mittels Makro?
Keine neuen Beiträge Access Tabellen & Abfragen: Neuen Datensatz über Formular mit Auswahlabfrage eingeben. 2 Gast 2312 14. Feb 2007, 13:51
Gast Neuen Datensatz über Formular mit Auswahlabfrage eingeben.
Keine neuen Beiträge Access Tabellen & Abfragen: Acces Auswahlabfrage 2 rabie 492 13. Feb 2007, 09:39
rabie Acces Auswahlabfrage
Keine neuen Beiträge Access Tabellen & Abfragen: Erstellen einer Auswahlabfrage mit dem Kriterium einer kombo 2 Christoph156 598 08. Dez 2006, 11:46
Christoph156 Erstellen einer Auswahlabfrage mit dem Kriterium einer kombo
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: MS Frontpage