|
Datensatz aus Tabelle kopieren & Anhängen
|
| Autor |
Nachricht |
Angelus1988
Gast
Verfasst am: 09. Nov 2009, 18:01 Rufname:
|
|
| Version: Office 2007 |
|
Hallo @all,
ich habe versucht aus meiner Tabelle "tblort" den letzten datensatz zu kopieren und diesen dann einfach an die Tabelle ranzuhängen:
Folgender Code habe ich dann in VBA mit einer SQL-Anweisung
| Code: | Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim SQL As String
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM tblort ORDER BY ID" _
, dbOpenDynaset)
If Not rs.EOF Then
rs.MoveLast
SQL = "INSERT INTO tblort" _
& " (ID_kunde, WR_standort, wr_hoehe, re_nr, GV/jahre," _
& " Wr_typ, id, kommunikation, planungsdatum," _
& " schnittstelle, anlagengroeße_in_kwp)" _
& " VALUES (rs.ID_kunde, rs.WR_Standort, rs.wr_hoehe," _
& " rs.re_nr,rs.gv/jahre,rs.wr_typ, rs.id," _
& " rs.kommunikation, rs.planungsdatum," _
& " rs.schnittstelle, rs.anlagengroesse_in_kwp)"
rs.Close
db.Execute SQL
Set rs = Nothing
Set db = Nothing
Else
MsgBox "noch kein Datensatz vorhanden"
End If
End Sub | Beim Starten per Button kommt folgende Fehlermeldung
| Zitat: | | Syntaxfehler in der SQL-Anweisung | jetzt meine frage, wo ist mein fehler ?
danke schon mal im vorraus,
mfg
Angelus1988
|
|
KlausMz
Moderator Access

Verfasst am: 09. Nov 2009, 18:06 Rufname:
Wohnort: Irgendwo in der Pfalz
|
| |
| Version: Office 2007 |
|
Hallo,
auf die Schnelle: Feldnamen mit Sonderzeichen (besser darauf verzichten) müssen in ein rechteckiges Klammerpaar eingeschlossen werden. [GV/jahre].
Wobei Dein Vorhaben auf ein falsches Datenmodell schließen lässt. Warum erzeugst Du redundante Daten?
_________________ Gruß
Klaus . . . . . Der sich über Feedback freut.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
|
|
Angelus1988
Gast
Verfasst am: 09. Nov 2009, 18:26 Rufname:
|
|
| Version: Office 2007 |
|
Jup, sind leider redundant. Aber ich bearbeite die Tabelle nur weiter, habe sie nicht angelegt.
Es geht nur darum dass der neue Datensatz dann per autozuweisung ne neue ID(primärschlüssel) kriegt.
Aber trotzdem schonmal danke für die schnelle Antwort
|
|
Willi Wipp
Moderator

Verfasst am: 09. Nov 2009, 18:55 Rufname:
Wohnort: Raum Wiesbaden
|
|
| Version: Office 2007 |
|
Hi Angelus1988,
ohne noch einmal auf den "Sinn" redundanter Datenhaltung einzugehen,
die Recordset-Feldbezuege muessen ausserhalb des Strings stehen! Du willst ja nur die Werte.
Oder Du versuchst es mal so
| Code: | Dim strSQL As String
strSQL = "INSERT INTO tblort" _
& " (ID_kunde, WR_standort, wr_hoehe, re_nr," _
& " [GV/jahre], Wr_typ, id, kommunikation," _
& " planungsdatum, schnittstelle," _
& " anlagengroeße_in_kwp)" _
& " SELECT ID_kunde, WR_standort, wr_hoehe, re_nr," _
& " [GV/jahre], Wr_typ, id, kommunikation," _
& " planungsdatum, schnittstelle," _
& " anlagengroeße_in_kwp" _
& " FROM tblort" _
& " WHERE ID = DMax('ID','tblort')"
With CurrentDb
.Execute strSQL, 128
If .RecordsAffected = 0 Then
MsgBox "noch kein Datensatz vorhanden"
End If
End With
End Sub |
_________________ Eine kurze Rueckmeldung waere nett
SL Willi Wipp
(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Zuletzt bearbeitet von Willi Wipp am 09. Nov 2009, 19:06, insgesamt einmal bearbeitet |
|
Marmeladenglas
komme zurecht
Verfasst am: 09. Nov 2009, 18:57 Rufname:
|
| |
| Version: Office 2007 |
|
Hi Willi,
dachte schon dich gibt es nicht mehr ..
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 09. Nov 2009, 19:01 Rufname:
Wohnort: NRW
|
|
| Version: Office 2007 |
|
Hi miteinander,
ich würde das Select-Statement (Unterabfrage) nach diesem Hinweis | Zitat: | | Es geht nur darum dass der neue Datensatz dann per autozuweisung ne neue ID(primärschlüssel) kriegt. | noch um eine Where-Klausel erweitern: | Code: | & " FROM tblort" _
& " WHERE ID = DMax('ID','tblort')" | Falls es sich bei der "ID" um ID_Kunde handelt, muss dieses Datenfeld natürlich aus der Feldliste heraus genommen werden.
_________________ Gruß MissPh!
(HTH - hope to help)
|
|
Willi Wipp
Moderator

Verfasst am: 09. Nov 2009, 19:07 Rufname:
Wohnort: Raum Wiesbaden
|
|
| Version: Office 2007 |
|
@MissPh!,
Danke das hatte ich ueberlesen , habe es Oben geaendert!
@Marmeladenglas,
es gibt Zeiten, da gehen andere Sachen einfach vor
_________________ Eine kurze Rueckmeldung waere nett
SL Willi Wipp
(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
|
|
Gast
Verfasst am: 10. Nov 2009, 19:06 Rufname:
|
|
| Version: Office 2007 |
|
danke schon mal für eure hilfe Und ja ich möchte nach ID sortieren
ich habe es eben mit willi's code probiert, d.h. :
| Code: | strSQL = "INSERT INTO tblort" _
& " (ID_kunde, WR_standort, wr_hoehe, re_nr, [GV/jahre]," _
& " Wartungsdatum, kommunikation, planungsdatum," _
& " schnittstelle, anlagengroeße_in_kwp)" _
& " SELECT ID_kunde, WR_standort, wr_hoehe, re_nr, [GV/jahre]," _
& " Wartungsdatum, kommunikation, planungsdatum," _
& " schnittstelle, anlagengroeße_in_kwp" _
& " FROM tblort" _
& " WHERE ID = DMax('ID','tblort')"
With CurrentDb
.Execute strSQL, 128
If .RecordsAffected = 0 Then
MsgBox "noch kein Datensatz vorhanden"
End If
End With | aber hier kommt ein fehler dass | Zitat: | | 1 Parameter wurde erwartet, aber es wurden zu wenige Parameter übertragen | Woher kommt der FEhler ?
Und dann wollte ich dass auch versuchen, wie Willi meinte "die Recordset-Feldbezuege muessen ausserhalb des Strings stehen"
Meinst du damit soetwas wie :
| Code: | Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim SQL As String
Set db = CurrentDb
Set rs = db.OpenRecordset("SELECT * FROM tblort ORDE BY ID" _
, dbOpenDynaset)
If Not rs.EOF Then
rs.MoveLast
SQL = "INSERT INTO tblort" _
& " (ID_kunde, WR_standort, wr_hoehe, re_nr, GV/jahre," _
& " Wr_typ, id, kommunikation, planungsdatum," _
& " schnittstelle, anlagengroeße_in_kwp)" _
& " VALUES (" & rs!ID_kunde & ", " & rs!WR_Standort & "," _
& " " & rs!WR_Hoehe & ", " & rs!Re_Nr & "," _
& " " & rs![gv/jahre] & ", " & rs!WR_Typ & "," _
& " " & rs!ID & ", " & rs!Kommunikation & "," _
& " " & rs!Planungsdatum & "," _
& " " & rs!Schnittstelle & "," _
& " " & rs!anlagengroesse_in_kwp & ")"
rs.Close
db.Execute SQL
Set rs = Nothing
Set db = Nothing
Else
MsgBox "noch kein Datensatz vorhanden"
End If
End Sub | Nur geht das auch nicht -.-
| Zitat: | | Syntaxfehler in der Insert into anweisung | erscheint dann als Fehlermeldung...
weiß jemand weiter ?
danke schon mal,
|
|
MissPh!
Office-VBA-Programmiererin
Verfasst am: 10. Nov 2009, 19:14 Rufname:
Wohnort: NRW
|
| |
| Version: Office 2007 |
|
Hallo.
Im ersten Fall könnte ein falsch geschriebener (=nicht existenter) Datenfeldname die Ursache sein.
Im zweiten Versuch musst du noch die Datentypen berücksichtigen und Texte in Hochkommata einbetten.
...und dass du die ID - wenn das der Autowert ist - nicht mit einfügen darfst, sagte ich doch schon mal.
_________________ Gruß MissPh!
(HTH - hope to help)
|
|
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 |
 |
Access Formulare: Neuer Datensatz im UF wirft Fehlermeldung |
4 |
winfler01 |
105 |
13. Apr 2010, 21:19 winfler01  |
 |
Access Formulare: Mit Kombinationsfeld neuen Datensatz erstellen |
2 |
denzur |
307 |
20. Jan 2010, 14:04 denzur  |
 |
Access Programmierung / VBA: VBA für Datensatz neu oder bearbeiten |
22 |
EuroJürgen |
408 |
05. Jan 2010, 20:49 EuroJürgen  |
 |
Access Programmierung / VBA: Variable aus Tabelle in SQL Query einfügen |
3 |
jetlag |
104 |
05. Dez 2009, 22:52 MissPh!  |
 |
Access Programmierung / VBA: Datensatz speichern |
0 |
qqqe |
103 |
12. Okt 2009, 08:33 qqqe  |
 |
Access Formulare: Gültigkeitsregel bzw. Überprüfung anhand Eintrag in Tabelle |
9 |
gpran |
406 |
26. Sep 2009, 05:06 Willi Wipp  |
 |
Access Programmierung / VBA: Datensatz in Endlosformular einfügen aus Popup-Eingabe |
12 |
Johannn |
510 |
08. Jul 2009, 13:31 Johannn  |
 |
Access Formulare: Bedingte Formatierung abhängig vom vorherigen Datensatz |
0 |
Gast |
103 |
24. Nov 2008, 22:24 Gast  |
 |
Access Tabellen & Abfragen: Dubletten in einer Tabelle auslesen!!! |
2 |
mak |
1623 |
03. Apr 2008, 11:22 Falcon  |
 |
Access Programmierung / VBA: Löschen per VBA wenn 2 Werte in der Tabelle vorhanden sind. |
4 |
gast2000 |
206 |
19. Feb 2008, 13:12 Gast  |
 |
Access Tabellen & Abfragen: Wie aktualisiere ich eine Tabelle Ohne Aktualisierungsabfrag |
0 |
rabie |
207 |
06. Sep 2007, 11:25 rabie  |
 |
Access Formulare: Datensatz aus Listenfeld auswählen & öffnen |
20 |
Hunchback |
1425 |
26. Mai 2007, 18:57 Willi Wipp  |
| |
|