Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Inserire Dati di File TXT in MDB
Forum - Visual Basic 6 - Inserire Dati di File TXT in MDB

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 2:06
Mercoledì, 22/06/2011
Devo inserire in un database MDB dei dati che ho salvati in file TXT.
Ho scelto di usare una CommonDialog per poter scegliere il file TXT e subito dopo scegliere il database MDB da usare.

Il primo passo l'ho risolto velocemente
Codice sorgente - presumibilmente Delphi

  1. Dim nome As String
  2. With CommonDialog1
  3.   .DialogTitle = "Seleziona il file da caricare"
  4.   .Filter = "File di testo (*.txt) |*.txt| File Documento (*.doc) |*.doc|"
  5.   .FilterIndex = 1 'scelta posizionata su TXT
  6.   .ShowOpen
  7. nome = .FileName
  8. End With



ora cominciano i dolori.
Gibra mi ha consigliato, giustamente di usare ADO, ma vorrei finire il tutto usando DAO, che per questo tipo di lavoro basta e avanza e salvare il tutto
nei miei progetti.

Dopo aver aperto il file TXT, dovrei scegliere il file MDB,posso usare lo stesso codice,sostituendo solo le estensioni?

Una volta fatto questo non riesco ad importare i dati dal TXT al MDB.
Ho cercato in rete, ma devo essere un imbranato cronico,perche' non trovo
esempi di questo tipo per DAO.

Potrei avere qualche dritta o anche qualche esempio ?

x Gibra
tranquillo che usero', in futuro, ADO come mi hai consigliato ma per questo progetto DAO è sufficente.

Grazie

PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 13:21
Mercoledì, 22/06/2011

ImportText.exe Importing Text into Access with ADO/RDO/DAO/Filesys/Automation

http://support.microsoft.com/kb/230265/en-us

HTH

PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 15:48
Mercoledì, 22/06/2011
Ieri avevo consultato questa pagina, ho anche preso il codice e provato a farlo girare sulla mia applicazione ma non va.
Ho provato il primo esempio di codice,ma ci sono cose che non capisco ,come quei 2 file.ini e non so cosa fare.
Riguardando,forse,l 'esempio piu' adatto ,nel mio caso, è il secondo esempio?

Ciao

Ultima modifica effettuata da fusebyte il 22/06/2011 alle 15:52
PM Quote
Avatar
riddick (Normal User)
Rookie


Messaggi: 37
Iscritto: 17/06/2011

Segnala al moderatore
Postato alle 16:39
Mercoledì, 22/06/2011
Teoricamente credo che tu possa inserire questi dati prima in una variabile, e poi reinserirli nel db.

PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 17:30
Mercoledì, 22/06/2011
Testo quotato

Postato originariamente da fusebyte:
Ieri avevo consultato questa pagina, ho anche preso il codice e provato a farlo girare sulla mia applicazione ma non va.


Capisco...

Testo quotato

Postato originariamente da fusebyte:
Ho provato il primo esempio di codice,ma ci sono cose che non capisco ,come quei 2 file.ini e non so cosa fare.


Capisco...

Testo quotato

Postato originariamente da fusebyte:
Riguardando,forse,l 'esempio piu' adatto ,nel mio caso, è il secondo esempio?


Chissà... Forse... Chi può dirlo...


PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 5:10
Giovedì, 23/06/2011
Basto e avanzo io a non capire:-)
sono tornato sul primo codice, ho creato un form con gli oggetti elencati nel codice stesso,modificato le variabili, cercando di assegnare correttamente il nome del database,la tabella ed i campi.

Incollo il codice da me modificato

Codice sorgente - presumibilmente VB.NET

  1. Private Sub cmdApriTXTeMDB_Click()
  2. Dim nome As String
  3. Dim dbase As String
  4. With CommonDialog1
  5.   .DialogTitle = "Seleziona il file da caricare"
  6.   .Filter = "File di testo (*.txt) |*.txt| File Documento (*.doc) |*.doc|"
  7.   .FilterIndex = 1 'scelta posizionata su doc
  8.   .ShowOpen
  9. nome = .FileName
  10. End With
  11.  
  12. With CommonDialog2
  13.   .DialogTitle = "Seleziona il database"
  14.   .Filter = "Database (*.mdb) |*.mdb| File DBF (*.dbf) |*.dbf|"
  15.   .FilterIndex = 1 'scelta posizionata su mdb
  16.   .ShowOpen
  17. dbase = .FileName
  18. End With
  19. End Sub
  20.  
  21. Private Sub cmdInserisci_Click()
  22. Call DAOOpenTextFileImport
  23. End Sub
  24.  
  25. Sub DAOOpenTextFileImport()
  26. On Error GoTo ErrHandler
  27.  
  28. lblAction.Caption = "Import Dati..."
  29.  
  30. Dim daoDB As DAO.Database
  31. Dim strSQL As String
  32. 'dBase = daoDB
  33. If chkCreateTbl.value = 1 Then
  34.     DBEngine.IniPath = APP.Path & "\SchemaHeader.ini"
  35. Else
  36.     DBEngine.IniPath = APP.Path & "\Schema.ini"
  37. End If
  38.  
  39. Set daoDB = OpenDatabase(APP.Path, False, False, _
  40.                     "nomeTXT;Database=" & dbase & ";table=" & myTable) ' < qui dice var non  definita
  41.  
  42. If chkCreateTbl.value = 1 Then
  43.     'Use this if you do not already have a table created in Access.
  44.     'Creates and appends the data in one step.
  45.     strSQL = "SELECT * INTO [" & myTable & "] IN '" & _
  46.                    dbase & " '"
  47.     strSQL = strSQL & "FROM " & nomeTXT
  48.     daoDB.Execute strSQL
  49. Else
  50.     'Delete data before importing - use if necessary.
  51.     strSQL = "DELETE FROM [" & dbase & "] IN '" & _
  52.                     dbase & "'"
  53.     daoDB.Execute strSQL
  54.     'Append data to Access table.
  55.     strSQL = "INSERT INTO [" & ECM & "] IN '" & _
  56.                     dbase & "'"
  57.     strSQL = strSQL & "SELECT * FROM " & dbase
  58.     daoDB.Execute strSQL
  59. End If
  60.  
  61. GoTo ExitSub
  62.    
  63. ErrHandler:
  64.     lblAction.Caption = "DAO Import - Error."
  65.     MsgBox "Error: " & Err.Number & vbCrLf & Err.Description
  66.    
  67. ExitSub:
  68.     lblAction.Caption = "Complete!!!"
  69.     daoDB.Close
  70.     Set daoDB = Nothing
  71. End Sub


Risultato ,non funziona...e come potrebbe, avro ' commesso errori su errori.
Posso avere un aiuto a sistemare il codice e farmi capire gli errori commessi?

Grazie



Ultima modifica effettuata da fusebyte il 23/06/2011 alle 5:18
PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 10:25
Giovedì, 23/06/2011
Mi spiace, ma se continui ad usare DAO io non posso aiutarti, perchè onestamente sono secoli che non lo uso più e non mi ricordo assolutamente niente.

Però, altrettanto onestamente, devo dirti che non capisco perchè sei intestardito ad usare il vecchissimo DAO quando potresti usare ADO...



PM Quote
Avatar
fusebyte (Normal User)
Expert


Messaggi: 332
Iscritto: 24/12/2008

Segnala al moderatore
Postato alle 13:30
Giovedì, 23/06/2011
Volevo tenere la routine CreaMDB cosi' come è,perche' è esattamente quello che mi serviva, non c'entrano DAO o ADO,
e sinceramente non sono capace a convertire il codice di questa routine con ADO.

Avrei una domanda da farti.

Una volta creato il DB,che lo abbia fatto con DAO o altro mi impedisce di continuare con ADO o posso usarlo ?
A me l'aiuto serve e anche molto come è palesemente palese e non vorrei rinunciare al tuo ,quindi ho pensato a questa soluzione,usare ADO per
Insert_TXT_in_MDB
Ricerca_Dati_in_MDB
Salva_Dati_in_TXT

E' possibile o ci sono conflitti?
Considera,per quello che devo fare,che il formato Access 2003 è sufficente,ma
se quello che finora ho fatto funziona senza Access il problema non si dovrebbe porre.

Ciao

Ultima modifica effettuata da fusebyte il 23/06/2011 alle 14:57
PM Quote
Avatar
gibra (Normal User)
Pro


Messaggi: 155
Iscritto: 16/04/2009

Segnala al moderatore
Postato alle 17:19
Giovedì, 23/06/2011
Per quanto ne so su DAO (poco o niente) non mi risulta che possa leggere un database Access formato 2002/2003.
Al massimo, con il driver 3.60 di DAO puoi leggere il formato 2000.

Con ADO ed il Jet 4.0, invece, puoi leggere qualsiasi versione dalla '97 fino alla 2007/2010.

Vedi tu cosa ti conviene fare.

Fare un calderone con ADO + DAO presto o tardi la paghi (più presto che tardi), te ne accorgerai.
Tra l'altro che senso ha imparare entrambe le sintassi?
Per me nessuno.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo