|
|
Export DBF to Excel- #18062 in section [743298] |
Sec: |
(51) MS-Visual FoxPro 9.0 |
Von: |
Ulf Neugebauer |
An: |
Franz-Dietrich Frhr.v.Recum |
Am/Um: |
12.10.2021 09:59:36 gelesen |
Hallo Franz-Dietrich, Sorry ich konnte nicht gleich antworten. Zuerst erstellt du dir die Access Datenbank, dann erstellt du in der Datenbank eine Tabelle mit der gleichen/ähnlichen Struktur der dbf. Dann kannst du die Daten "pumpen"! *********************************** * /* Verbindung */ lcDSNLess = "Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\Path\File.mdb;Uid=Admin;Pwd=xxxx;" lnConnHandle = SQLSTRINGCONNECT( m.lcDSNLess ) IF lnConnHandle = -1 ACTIVATE SCREEN ? "keine Verbindung" RETURN ENDIF USE DeineDbfTabelle ALIAS tbl_dbf * /* Pumpen */ SCAN TEXT TO lcScript NOSHOW TEXTMERGE PRETEXT 7+8 Insert Into tblAccess ( Feld1, Feld2, Feld3 ) Values ( ?ALLTRIM(tbl_dbf.Feld1), ?ALLTRIM(tbl_dbf.Feld2), ?ALLTRIM(tbl_dbf.Feld3) ENDTEXT IF SQLEXEC( lnConnHandle, lcScript ) != 1 ACTIVATE SCREEN ? "Fehler" ENDIF ENDSCAN SQLDISCONNECT( lnConnHandle ) *********************************** Das hat aber den Nachteil, das man die Tabelle wieder leeren muss, wenn etwas schief geht, um es erneut zu versuchen. Besser währe es du hast einen PK in der Tabelle. Hier würde ich zuerst prüfen ob der Datensatz schon da ist (Select * From xx Where PK_acc = ?PK_dbf), und im 2. Schritt per (Update tblAccess Set Feld1 = ?ALLTRIM(tbl_dbf.Feld1) ... Where PK_acc = ?PK_dbf) aktualisieren. Beste Grüße Ulf Neugebauer Fox on The Run (The Sweet)
|
|
|
|