florian86
Goto Top

Excel mit Acces DB

Hallo,

ich möchte bestimmte Felder in Excel über einen Button in eine Access DB schreiben.

c8daaca1a3924cec97d6389ad6989100

624d4c3a9261dcc305b8a0cae5a1b116

Leider bekomm ich das mit dem Connection String und schreiben der Daten in die TB nicht hin.

Gibt es da eine Lösung zu?

MfG

Florian86

Content-Key: 289995

Url: https://administrator.de/contentid/289995

Printed on: April 18, 2024 at 02:04 o'clock

Mitglied: 122990
Solution 122990 Dec 03, 2015 updated at 14:56:53 (UTC)
Goto Top
Set conn = CreateObject("ADODB.Connection")  
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Ordner\test.accdb;"  
conn.Execute "Insert Into NAMEDERTABELLE (Artikelnr,Beschreibung) VALUES ('" & Range("B2").Value & "','" & Range("B3").Value & "')"  
conn.Close

SQL Insert String einfach nach Bedarf anpassen ... usw.

Gruß grexit
Member: Florian86
Florian86 Dec 03, 2015 at 14:29:18 (UTC)
Goto Top
Hey,

ich wird es ausprobieren und Rückinfo melden.

MfG

Florian86
Member: Florian86
Florian86 Dec 07, 2015 updated at 14:28:16 (UTC)
Goto Top
Hallo Grexit,

das mit dem String funktioniert super...
Leider habe ich das Problem bei Beschreibung kommen öfters Apostroph vor welche mir immer Fehler generieren.

Laufzeitfehler '-2147217900 (80040e14)':
Syntaxfehler ( fehlender Operator ) in Abfrageausdruck "Emmi's Probepackung"

kann ich das Irgendwie umgehen?

Mit freundlichen Grüßen

Florian86
Mitglied: 122990
122990 Dec 07, 2015 updated at 14:54:36 (UTC)
Goto Top
Zitat von @Florian86:

Hallo Grexit,

das mit dem String funktioniert super...
Leider habe ich das Problem bei Beschreibung kommen öfters Apostroph vor welche mir immer Fehler generieren.

Laufzeitfehler '-2147217900 (80040e14)':
Syntaxfehler ( fehlender Operator ) in Abfrageausdruck "Emmi's Probepackung"

kann ich das Irgendwie umgehen?
Ja, du musst die single quotes verdoppeln, kannst du mit Replace machen
strDescription = Replace(Range("B2").Value,"'","''")  
Und dann die Variable einbauen.
Member: Florian86
Florian86 Dec 08, 2015 at 06:16:02 (UTC)
Goto Top
Hallo Grexit,

ich habe das jetzt für alle so gemacht...

strDatum = Replace(Range("B1").Value, "'", "''")
strArtikelnr = Replace(Range("B2").Value, "'", "''")
strBeschreibung = Replace(Range("B3").Value, "'", "''")
strMengeKarton = Replace(Range("B4").Value, "'", "''")
strMengeBeutel = Replace(Range("B5").Value, "'", "''")
strMengeBeutel1 = Replace(Range("C21").Value, "'", "''")
strMengeBeutel2 = Replace(Range("C22").Value, "'", "''")
strMengeBeutel3 = Replace(Range("C23").Value, "'", "''")
strGewicht = Replace(Range("B6").Value, "'", "''")
strEingabe = Replace(Range("B7").Value, "'", "''")
strGruppe = Replace(Range("B8").Value, "'", "''")
strMarke = Replace(Range("B9").Value, "'", "''")
strLand = Replace(Range("B10").Value, "'", "''")

Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\172.17.5.212\Buchhaltung_KH\01-Gemeinsame_Daten\11_DBASE-Projekt\DBASE.accdb;"
conn.Execute "Insert Into [tbl_daten] (Datum,Artikelnr,Beschreibung,MengeKarton,MengeBeutel,MengeBeutel1,MengeBeutel2,MengeBeutel3,Gewicht,Eingabe,Gruppe,Marke,Land) VALUES (strDatum,strArtikelnr,strBeschreibung,strMengeKarton,strMengeBeutel,strMengeBeutel1,strMengeBeutel2,strMengeBeutel3,strGewicht,strEingabe,strGruppe,strMarke,strLand)"
conn.Close


Leider bringt er mir jetzt .... das für einen Parameter kein Wert gefunden wurde!
Ich weis aber nicht an welcher Stelle er meint.

Könntest du nochmal drüber schauen?

MfG

Florian86
Member: Florian86
Florian86 Dec 08, 2015 at 08:11:51 (UTC)
Goto Top
Problem ist das er mir den ersten Apostroph nicht umwandelt

strBeschreibung = Replace(Range("B3").Value, "'", "")

kann man sagen das er das erste Apostroph - 1 nach links anfängt?

MfG

Florian86
Mitglied: 122990
122990 Dec 08, 2015 updated at 08:39:34 (UTC)
Goto Top
Ja neeee, du musst die String-Werte trotzdem noch in der SQL Query in einzelne Hochkommas einklammern !! Schau dir meinen Code oben nochmal ganz genau an! Und Datumswerte sind für Access gesondert zu handhaben und mit Rauten anstatt Hochkommas einzuklammern.
Wohl noch nie mit SQL zu tun gehabt ?
Dann empfehle ich dir das erst mal zu lesen:
http://www.w3schools.com/sql/
Member: Florian86
Florian86 Dec 08, 2015 at 08:54:51 (UTC)
Goto Top
wenn ich 'strBeschreibung' eingebe, schreibt er mir das genau so in die DB.
Also steht dann in meiner DB nicht mein Text sondern strBeschreibung.

MfG

Florian86
Mitglied: 122990
Solution 122990 Dec 08, 2015 updated at 11:15:28 (UTC)
Goto Top
Zitat von @Florian86:

wenn ich 'strBeschreibung' eingebe, schreibt er mir das genau so in die DB.
Falsch du kannst nicht einfach Strings mit Variablen zusammen mischen! Schau doch meinen Post oben bitte noch mal ganz genau an !!!!
conn.Execute "Insert Into NAMEDERTABELLE (Artikelnr,Beschreibung) VALUES ('" & strArtikelnummer & "','" & strBeschreibung & "')"
Member: Florian86
Florian86 Dec 08, 2015 at 09:44:07 (UTC)
Goto Top
Sorry das ich in der Materie nicht so fit bin.
Wills mir ja gerade aneignen mit so kleinen Projekten.

MfG

Florian86