Hallo zusammen,
kann mir einer sagen, ob Ich eine CSV Datei in Access importieren lassen kann?
Wenn ja wie geht das, die Verbindung zu meiner DB habe Ich schon nur, im SQL BEfehl kann Ich ja schlecht sagen nimm die CSV
Viele Grüße
caran
Hallo zusammen,
kann mir einer sagen, ob Ich eine CSV Datei in Access importieren lassen kann?
Wenn ja wie geht das, die Verbindung zu meiner DB habe Ich schon nur, im SQL BEfehl kann Ich ja schlecht sagen nimm die CSV
Viele Grüße
caran
Ich weiß nicht, ob es bereits Access-UDF ähnlich der Excel-UDF gibt. Aber grundsätzlich brauchst du doch aus den Daten der csv nur den INSERT-String zusammenstellen.
- csv in ein Array lesen
- für jeden Arrayeintrag:
-- Zeile an Trennzeichen splitten
-- das Splitarray enthält jetzt die Werte für jedes zugeordnete Feld
-- nun in einer Schleife zusammenfügen: $sInsert &= INSERT ....'Feld' = 'Wert'
Syntax sollte klar sein, hier nur grobe Vorgehensweise.
Hi,
ja genau so wollte Ich das auch machen nur der der Insert Syntax ist mir nicht klar -.-"
mFg
nur der der Insert Syntax ist mir nicht klar
Da hilft Google (und MSDN): https://msdn.microsoft.com/en-us/library/…office.12).aspx
Hi,
sorry das Ich so spät Antworte, also die Syntax ist mir schon klar, die Frage ist ich lese die CSV ein, von mir aus in ein Array, wie gebe Ich den
im Insert INto ein ?
mfg
google -> autoit access udf
https://www.autoitscript.com/forum/topic/140277-ms-access-udf/
wie gebe Ich den
im Insert INto ein ?
Meinst du, wie du den INSERT-String erstellst?
Bsp:
; Bsp: csv mit 5 Spalten
#cs
FELD1,FELD2,FELD3,FELD4,FELD5
A,B,C,D,E
X,Y,,,Z
#ce
Local $sTable = 'Tabellenname'
Local $aCSV, $aSplit, $sSQL = ''
_FileReadToArray($sPathCSV, $aCSV, 0, ',')
For $i = 1 To UBound($aCSV) -1 ; erste Zeile enthält Feldnamen, ignorieren
$aSplit = StringSplit($aCSV[$i], ',')
If $aSplit[0] <> 5 Then ContinueLoop ; Zeile in csv nicht korrekt
; INSERT INTO target [(field1[, field2[, …]])] VALUES (value1[, value2[, …])
$sSQL &= StringFormat("INSERT INTO %s (FELD1,FELD2,FELD3,FELD4,FELD5) VALUES (%s,%s,%s,%s,%s);", $aSplit[1], $aSplit[2], $aSplit[3], $aSplit[4], $aSplit[5])
Next
Alles anzeigen
@ x0r Leider bringt das nicht, da die UDF nicht "accdb" unterstützt.
Zeig mal deinen aktuellen Skriptstand und füge eine Demo.CSV mit an.
die Access UDF brauchst du da nicht zwingend und es gibt hier im Forum auch schon paar Beiträge zum MS Access.
Hier mal ein einfacher Insert in eine Access accdb. (Datei im Anhang)
$dbname = "d:\test.accdb"
_access_write($dbname)
Func _access_write($dbname)
$adoCon = ObjCreate("ADODB.Connection")
$adoCon.Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & $dbname & ";")
$adoRs = ObjCreate("ADODB.Recordset")
;$adocon = ObjCreate("ADODB.Connection")
;$adocon.open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname)
;$adors = ObjCreate("ADODB.Recordset")
Local $sQuery = "INSERT INTO TB1 (`Name`,`Vorname`) VALUES ('Meier','Wolfgang')"
;Local $sQuery = 'UPDATE TB1 SET [01_MA].SID = "' & $sid & '" WHERE [01_MA].PC = "' & $ssamaccountname & '"'
$adoCon.Execute($sQuery)
$adoCon.Close
EndFunc
Alles anzeigen
gruß gmmg
Sorry, aber dein Source hat zuviele Fehler. Ich dachte ich könnte einfach den Insert-Teil einfügen, die SQL-Syntax sollte wohl gleich oder doch sehr ähnlich sein. Aber bei deinem Skript müsste ich ja von vorne anfangen.
Die ertsen Fehler die mir aufgefallen sind haben alle etwas mit String-Concatenate (&) zu tun, die habe ich noch berichtigt aber danach kommen noch 26:
>"C:\Program Files\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3" /UserParams
+>12:56:31 Starting AutoIt3Wrapper v.14.801.2025.0 SciTE v.3.4.4.0 Keyboard:00000407 OS:WIN_81/ CPU:X64 OS:X64 Environment(Language:0407)
+> SciTEDir => C:\Program Files\AutoIt3\SciTE UserDir => C:\Users\Bert\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\Bert\AppData\Local\AutoIt v3\SciTE
>Running AU3Check (3.3.14.1) from:C:\Program Files\AutoIt3 input:C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(24,20) : error: syntax error
If $aSplit[$i] <> [
~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(26,142) : error: syntax error
$oRS.Open &= StringFormat("INSERT INTO $sTable (reportID,reportunique_ID , reportmemory, reportbios_make, reportbios_model,reportassettag, "
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(31,17) : error: syntax error (illegal character)
VALUES (%
~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,16) : error: syntax error (illegal character)
VALUES(%
~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,143) : error: Statement cannot be just an expression. (illegal character)
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,153) : error: syntax error
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,154) : error: Statement cannot be just an expression.
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,164) : error: syntax error
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,165) : error: Statement cannot be just an expression.
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],$aSplit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,175) : error: syntax error
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],$aSplit[3],
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,176) : error: Statement cannot be just an expression.
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],$aSplit[3],$aSplit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,186) : error: syntax error
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],$aSplit[3],$aSplit[4],
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,187) : error: Statement cannot be just an expression.
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],$aSplit[3],$aSplit[4],$aSplit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(32,199) : error: Statement cannot be just an expression.
VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s),$aSplit[1],$aSplit[2],$aSplit[3],$aSplit[4],$aSplit[5];"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,38) : error: diskiscleaned(): undefined function.
"diskbadsectors,diskiscleaned,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,50) : error: diskproduct(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,61) : error: diskserial(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,70) : error: disksize(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,83) : error: diskverified(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,98) : error: diskhpa_status(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,diskhpa_status,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,113) : error: diskdco_status(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,diskhpa_status,diskdco_status,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,127) : error: processorname(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,diskhpa_status,diskdco_status,processorname,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,142) : error: processorspeed(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,diskhpa_status,diskdco_status,processorname,processorspeed,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,153) : error: nicproduct(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,diskhpa_status,diskdco_status,processorname,processorspeed,nicproduct,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(30,168) : error: opticalproduct(): undefined function.
"diskbadsectors,diskiscleaned,diskproduct,diskserial,disksize,diskverified,diskhpa_status,diskdco_status,processorname,processorspeed,nicproduct,opticalproduct)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3"(31,36) : error: VALUES(): undefined function.
VALUES (%s,%s,%s,%s,%s.....)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Users\Bert\AutoIt3.My\Downloads\Accessdemo\db (Test).au3 - 26 error(s), 0 warning(s)
!>12:56:31 AU3Check ended. Press F4 to jump to next error.rc:2
+>12:56:31 AutoIt3Wrapper Finished.
>Exit code: 2 Time: 0.9342
Alles anzeigen
die Query sollte so aussehen wie im Beispiel aussehen...
Beispiel
; schleife durch Array, Werte erzeugen und übergeben
$sQuery = "INSERT INTO tabelle_xyz (`Feld1`,`Feld2`,`Feld3`,`Feld4`) VALUES ('" & $s_wert[1] & "', '" & $s_wert[2] & "', '" & $s_wert[3] & "', '" & $s_wert[4] & "')"
Zum testen auch einfach mal die Query über Consolewrite($query) ausgeben lassen und den String direkt im Access testen
gruß gmmg