Salve. Sto convertendo un vecchissimo Db ad accesso casuale in access (ado).
Il problema che mi si presenta (mi sembra di capire) è che usando la query sql per inserire i vari record, questa risulta essere troppo lunga e quindi mi esce un errore di sintassi. Infatti convertendo meno campi (stringaSQL più corta) funziona. Ci sono altri metodi per scrivere i record senza usare una stringa SQL oppure qualche altra soluzione?
Connessione al DB:
Private Sub ConnectToDB()
Set MioDbConn = New ADODB.Connection
MioDbConn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" _
& OttieniPercorsoApplic _
& "pratiche.mdb"
MioDbConn.Open
Set MioDbCmd = New ADODB.Command
Set MioDbCmd.ActiveConnection = MioDbConn
MioDbCmd.CommandType = adCmdText
End Sub
Routine di conversione:
Private Sub Command6_Click()
Dim CampoID As Integer
Dim a, strSQL As String
Dim OldDb As vecchiapratica
Open OttieniPercorsoApplic & "pratiche.008" For Random Access Read As 1 Len = Len(OldDb)
CampoID = 0
For a = 1 To LOF(1) / 112
Get #1, a, OldDb
CampoID = CampoID + 1
strSQL = "INSERT INTO tabella( ID"
strSQL = strSQL & ", pratica"
strSQL = strSQL & ", viaggio"
strSQL = strSQL & ", nave"
strSQL = strSQL & ", bandiera"
strSQL = strSQL & ", codice"
strSQL = strSQL & ", data"
strSQL = strSQL & ", porto"
strSQL = strSQL & ", agenzia"
strSQL = strSQL & ", valuta1"
strSQL = strSQL & ", valuta2"
strSQL = strSQL & ", cambionave1"
strSQL = strSQL & ", cambionave2"
strSQL = strSQL & ", finita"
strSQL = strSQL & ", nuovo"
strSQL = strSQL & ", numsubpra"
strSQL = strSQL & ") VALUES ("
strSQL = strSQL & CampoID
strSQL = strSQL & ", '" & Replace$(OldDb.prat, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.viaggio, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.nave, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.bandiera, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.codice, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.data, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.port, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.agen, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.valuta1, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.valuta2, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.cambionave1, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.cambionave2, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.finita, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.vuoto, "'", "''") & "'"
strSQL = strSQL & ", '" & Replace$(OldDb.NMSP, "'", "''") & "'"
strSQL = strSQL & ")"
MioDbCmd.CommandText = strSQL
MioDbCmd.Execute
Next a
Close #a
End Sub
Ringrazio anticipatamente, Fabio.

Rispondi quotando
