Access VBA+SQL Insert into

Diskutiere Access VBA+SQL Insert into im Programmierung Forum im Bereich Software Forum; Hallo! ich möchte mittels einer SQL Abfrage ( Anfügeabfrage ) in meinem VBA Code den Inhalt einer Tabelle in eine andere einfügen... So weit so...
D

duesso

Threadstarter
Mitglied seit
15.12.2005
Beiträge
4.324
Standort
Mettmann
Hallo!
ich möchte mittels einer SQL Abfrage ( Anfügeabfrage ) in meinem VBA Code den Inhalt einer Tabelle in eine andere einfügen...

So weit so gut nur funzt es leider nicht...
So sieht mein Code aus:

DoCmd.RunSQL ("insert into zielsuche (id, Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST-Vorname, KST-Verantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero-Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten-Service, Deko, Büromat-Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) values (select * from gesamt)")

Jemand ne Ahnung worans scheitert ?:flenn :confused
 
Bullayer

Bullayer

Schwergewicht
Mitglied seit
19.07.2006
Beiträge
24.153
Standort
DE-RLP-COC
Wie lautet denn die Fehlermeldung??
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
weiß, das vb bzw. vba probs mit stringverarbeitung hat wenn es sehr viele zeichen im string gibt. versuche den sql-string mal in einer variable zwischenzuspeichern und übergib die variable als argument:

dim befehl as string
befehl = insert ... usw
DoCmd.RunSQL(befehl)

mfg
 
D

duesso

Threadstarter
Mitglied seit
15.12.2005
Beiträge
4.324
Standort
Mettmann
Genau damit hab ich immer Probs...

Also grundsätzlich funzt das jetzt !
PROBLEM NUN:

ich hab ne where klausel drangehangen die die Vergleichsbedingung aus ner Variablen im Formular erhält..und das funzt net :-(

Jetzt sucht der Doof nen Parameter wert :-(

DoCmd.RunSQL ("insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KST_Verantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where KSTVerantwortlicher =" & Me.suchname)
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
hast dus so gemacht:
befehl & where
oder so:
DoCmd.RunSQL(befehl & where) ?

das zweite dürfte nicht funktionieren...

mfg
 
D

duesso

Threadstarter
Mitglied seit
15.12.2005
Beiträge
4.324
Standort
Mettmann
hast dus so gemacht:
befehl & where
oder so:
DoCmd.RunSQL(befehl & where) ?

das zweite dürfte nicht funktionieren...

mfg
Wie oben:

... select * from Gesamt where KSTVerantwortlicher =" & Me.suchname)

Wenn ich im nun erscheinenden neuen Paramterfenster noch mal mein Kriterium eingebe klappts :-(
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
sry, net gelesen

mach es so
befehl = insert
befehl = befehl & me.suchname
DoCmd.RunSQL(befehl)

die where klausel musst du natürlich natürlich noch in den ürsprünglichen befehl einpflegen

mfg
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
mmmh......

wie sieht denn dein code jetzt aus?

mfg
 
D

duesso

Threadstarter
Mitglied seit
15.12.2005
Beiträge
4.324
Standort
Mettmann
Wie eben :flenn

DoCmd.RunSQL ("insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KSTVerantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where gesamt.kstverantwortlicher =" & Me.suchname.Value)
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
versuch es so:

befehl = "insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KSTVerantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where gesamt.kstverantwortlicher =" & Me.suchname.Value

DoCmd.RunSQL(befehl)

besonders bei stringverknüpfungen gibt vb schnell den geist auf.

mfg
 
D

duesso

Threadstarter
Mitglied seit
15.12.2005
Beiträge
4.324
Standort
Mettmann
versuch es so:

befehl = "insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KSTVerantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where gesamt.kstverantwortlicher =" & Me.suchname.Value

DoCmd.RunSQL(befehl)

besonders bei stringverknüpfungen gibt vb schnell den geist auf.

mfg

SO:

sql = "insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KSTVerantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where kstverantwortlicher = "
sql = sql + suchname.Value

MsgBox sql

DoCmd.RunSQL (sql)

KLAPPT bis auf das das Teil immer noch den Paramter haben will :flenn
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
meinst du "DoCmd.RunSQL"?

welche params benötigt denn die?

mfg
 
D

duesso

Threadstarter
Mitglied seit
15.12.2005
Beiträge
4.324
Standort
Mettmann
meinst du "DoCmd.RunSQL"?

welche params benötigt denn die?

mfg

Er denkt ich hätte ne Paramterabfrage geschaffen und will das ich noch mal den Suchnamen eingebe obwohl er ihn doch über where bereits bekommt ...


Private Sub detailsuche_Click()


Dim sql As String

sql = "insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KSTVerantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where Gesamt.kstverantwortlicher = "

MsgBox sql

DoCmd.RunSQL ("Delete * from Zielsuche")



If suchname <> "" Then

sql = sql + suchname.Value

DoCmd.RunSQL (sql)

End If

End Sub
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
sry, mal wieder net richtig gelesen

sql = "insert into Zielsuche ( Erstellungsdatum, Datum, Name_Veranstaltung, Raum, Art, KST, Bereich_bereinigt, Bereich, Titel, KST_Vorname, KSTVerantwortlicher, Anrede_2, Anzahl_Teilnehmer, Tage, Halbtagessatz, Summe_Halbtagessatz, Ganztagessatz, SummeGanztagessatz, Fruehstueck, AnzahlSchnittchenpP, SummeFrühstück, SummeLunch, Dinner, Summe_Dinner, Champagnerp_Flasche, Anzahl_FlChampagner, SummeChampagner, Weißweinp_Flasche, Anzahl_FlWeißwein, Summe_Weißwein, Rotweinp_Flasche, Anzahl_FlRotwein, SummeRotwein, PreisWasser, AnzahlWasser, SummeWasser, SoftdrinksApero_Preis, Anzahl_Softdrink, Summe_Softdrink_Apero, DegestifKaffe, Flaschenpreis, AnzahlFlaschenbier, SummeFlBier, Set_up, Sonderreinigung, Sondertechnik, Sonderzeiten_Service, Deko, Büromat_Namensschild, SummeBüromat, sonstiger_Aufwand, Summe, neuer_satz) select * from Gesamt where kstverantwortlicher = " & suchname.Value

DoCmd.RunSQL (sql)


so müsste es aber klappen. dein string war syntaktisch falsch
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
stimmt! k***** sry, aber ich hab das falsch interpretiert

ehm... was genau wird denn für eine fehlermeldung ausgegeben.
was du auch nochmal prüfen kannst, ob der wert des "suchname.Value"-ausdrucks richtig übergeben wird

mfg
 
T

thecaptain

Mitglied seit
19.06.2006
Beiträge
1.631
Alter
36
Standort
Nordthüringen
@bullayer:
nicht ganz, denn die fehlermeldung müsste nach dem wie ich das jetzt mitbekommen habe, eine andere sein. aber trotzdem find ichs klasse dass ich mich hier net alleine abstrampeln muss. :up

mfg
 
Thema:

Access VBA+SQL Insert into

Sucheingaben

access insert into Ziel ist variable

Access VBA+SQL Insert into - Ähnliche Themen

  • intel Technology Access service nicht mehr funktionsfähig,

    intel Technology Access service nicht mehr funktionsfähig,: Iich bekomme im Zuverlässigkeitsverlauf regelmässig obige Meldung, was bedeutet das und was kann ich dagegen tun
  • KB4512508 für Windows 10 (1903) führt zu massiven Problemen in Visual Basic / Access

    KB4512508 für Windows 10 (1903) führt zu massiven Problemen in Visual Basic / Access: Durch das Windows-Update KB4512509 kommt es in einer von mir programmierten Access-Datenbank mit einer größeren Zahl von Nutzern (NGOs) zu...
  • Kostenlose Alternativen für Windows 10 Dolby Access App?

    Kostenlose Alternativen für Windows 10 Dolby Access App?: Kennt Ihr Alternativen zur Dolby Access App aus dem Microsoft Store? Zum einen ist die App ja nicht wirklich kostenfrei, zum anderen scheint sie...
  • Controlled Folder Access’ deaktivieren

    Controlled Folder Access’ deaktivieren: Wie kann ich die Option "Controlled Folder Access" im Windows Defender ausschalten? Diese Option behindert möglicherweise das Funktionieren eines...
  • SQL/Access VBA Frage

    SQL/Access VBA Frage: Moin zusammen! Ich habe hier eine Pass-Through-Abfrage im VBA-Code die auf eine Oracle-DB geht... So weit so gut... nach der Abfrage exportiere...
  • Ähnliche Themen

    Oben