MasterDrive.it   
Vai indietro   MasterDrive.it > Software Development > Visual Basic 6



Rispondi
 
Strumenti della discussione Modalità di visualizzazione
Vecchio 25-10-2005, 15:46   #1 (permalink)
Nuovo della community

 
6 Messaggi

princepao novizio della comunita' ( + 10 )
Unhappy Esecuzione di una Query Access in VB6

Ciao ragazzi, vi scrivo per chiedervi lumi su due problemi:
devo importare un file di testo (.txt) in una tabella Access 2000; ho creato la specifica di importazione e funziona tutto a meaviglia se eseguo l'importazione in Access. Il problema nasce quando provo a eseguirla da un'applicazione VB. Questo è il codice che ho scritto:

Private Sub mnuAcquirenti_Click()

On Error GoTo GestioneErr

Dim strFileAcqu As String
Dim cmd As New ADODB.Command
Dim rds As New ADODB.Recordset

strFileAcqu = "gae0kl03_lombardia.txt"

'Importo i dati dal file di testo in una tabella
AggiornamentoArchivi strFileAcqu, "ImportazioneAcquirenti", "Acquirenti da importare"

DoCmd.SetWarnings False ' disabilito il messaggio di conferma in Access

'Accodo i dati importati nella tabella Acquirenti

cmd.ActiveConnection = Connessione
cmd.CommandText = "[(P) AGGIORNAMENTO ACQUIRENTI]"

Set rds = cmd.Execute

DoCmd.SetWarnings True ' ripristino il messaggio di conferma in Access

MsgBox "Importazione Acquirenti completata con successo", vbOKOnly + vbInformation, "Aggiornamento Archivi"
Set cmd = Nothing

Exit Sub

GestioneErr:
MsgBox "Errore: " & Err.Number & " - " & Err.Description & vbCrLf & _
"L'importazione dei dati non è avvenuta correttamente.", vbOKOnly + vbCritical, "Aggiornamento Archivi"
Set cmd = Nothing

End Sub




Private Sub AggiornamentoArchivi(strFile As String, strSpecifica As String, strTabella As String)

On Error GoTo GestioneErr

Dim strDir As String
Dim fs As Scripting.FileSystemObject

strDir = "T:\Quote Latte\Software\Rql\Archivi da AGEA\" 'è comune a tutti i file

'Controllo: se la connessione è chiusa, la apro
If Connessione.State = adStateClosed Then
Connessione.Open "DSN=RQL_Write"
End If

Set fs = CreateObject("Scripting.FileSystemObject")

'Controllo se esiste il file da importare
If fs.FileExists(strDir & strFile) = False Then
MsgBox "Il file per l'aggiornamento archivi " & strFile & " non è presente nella directory " & strDir & "!", vbOKOnly + vbCritical, "Aggiornamento Archivi"
Exit Sub
Else
If MsgBox("Confermi l'importazione del file " & strFile & " ?", vbYesNo + vbQuestion, "Aggiornamento Archivi") = vbYes Then
DoCmd.TransferText acImportFixed, strSpecifica, strTabella, strDir & strFile, False
Else
MsgBox "Importazione dati annullata dall'utente", vbOKOnly + vbInformation, "Aggiornamento Archivi"
Set fs = Nothing
Exit Sub
End If
End If

Set fs = Nothing

Exit Sub

GestioneErr:
MsgBox "Errore: " & Err.Number & " - " & Err.Description & vbCrLf & _
"L'importazione dei dati non è avvenuta correttamente."

End Sub

Il primo problema che riscontro è che se Access è aperto l'importazione fatta con l'istruzione DoCmd.TransferText funziona, mentre se Access è chiuso la tabella non viene popolata;
il secondo problema sorge quando, dopo l'importazione del file di testo, cerco di eseguire la query di accodamento [(P) AGGIORNAMENTO ACQUIRENTI]. Sbaglio la sintassi??
Vi ringrazio per l'attenzione,
P.

princepao non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 15:53   #2 (permalink)
Moderatore Globale

 L'avatar di AntonioGiuliana

 
6,640 Messaggi

AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )
Stiamo parlando di codice VB6 o VBA di Access?
__________________
Antonio GIULIANA
AntonioGiuliana non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 15:57   #3 (permalink)
Nuovo della community

 
6 Messaggi

princepao novizio della comunita' ( + 10 )
Il codice è in VB6, la Connessione è di tipo ADODB.Connection
princepao non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 16:05   #4 (permalink)
Moderatore Globale

 L'avatar di AntonioGiuliana

 
6,640 Messaggi

AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )
Quote:
Originariamente inviata da princepao
Il codice è in VB6 ...
E in VB6 cosa e'

DoCmd

?

Hai per caso referenziato la libreria di Access? E perchè mai?
__________________
Antonio GIULIANA
AntonioGiuliana non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 16:11   #5 (permalink)
Nuovo della community

 
6 Messaggi

princepao novizio della comunita' ( + 10 )
sì certo che ho referenziato la Microsoft Access 11.0 Object Library perché il db sottostante all'applicazione VB è in Access. Ti spiego, questa applicazione non l'ho sviluppata io dall'inizio, sono subentrato in seguito e me ne hanno affidato la manutenzione evolutiva, per cui ho pensato di cambiare il minor numero di cose possibile
princepao non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 16:23   #6 (permalink)
Moderatore Globale

 L'avatar di AntonioGiuliana

 
6,640 Messaggi

AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )
Quote:
Originariamente inviata da princepao
sì certo che ho referenziato la Microsoft Access 11.0 Object Library perché il db sottostante all'applicazione VB è in Access. Ti spiego, questa applicazione non l'ho sviluppata io dall'inizio, sono subentrato in seguito e me ne hanno affidato la manutenzione evolutiva, per cui ho pensato di cambiare il minor numero di cose possibile
No .. non devi referenziare Access solo perche' il db e' un mdb di Access!

Anzi ... dato che stai lavorando con ADO, continua ad usare ADO e il suo modello ad oggetti e non referenziare Access.

Mi viene un dubbio ... nel file Access, oltre ai dati veri e propri, ci sta del codice o query ...?
__________________
Antonio GIULIANA
AntonioGiuliana non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 16:31   #7 (permalink)
Nuovo della community

 
6 Messaggi

princepao novizio della comunita' ( + 10 )
No, codice non ce n'è ma ci sono moltissime query, in parte erano già lì quando ho preso in gestione l'applicazione e qualcuna l'ho fatta anch'io, per esempio quella invocata nel codice che ti ho mandato è una delle mie
princepao non è in linea   Bookmark and Share Rispondi quotando
Vecchio 25-10-2005, 17:08   #8 (permalink)
Moderatore Globale

 L'avatar di AntonioGiuliana

 
6,640 Messaggi

AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )AntonioGiuliana e' un nome conosciuto da tutti ( + 550 )
Quote:
Originariamente inviata da princepao
No, codice non ce n'è ma ci sono moltissime query, in parte erano già lì quando ho preso in gestione l'applicazione e qualcuna l'ho fatta anch'io, per esempio quella invocata nel codice che ti ho mandato è una delle mie
Ok ... allora la cosa giusta e' tirare fuori tutte le query e conservare nel file mdb soltanto il db con i dati.

Le query saranno richiamate dal tuo codice con gli oggetti ADO *senza* avere la necessità di referenziare Access (quindi anche di aprirlo ...).

E cosa piu' importante, potrai installare il tuo programma in un PC in cui Access non è installato in quanto l'accesso avverrà solamente tramite la libreria ADO e Jet ...
__________________
Antonio GIULIANA
AntonioGiuliana non è in linea   Bookmark and Share Rispondi quotando
Vecchio 26-10-2005, 09:04   #9 (permalink)
Nuovo della community

 
6 Messaggi

princepao novizio della comunita' ( + 10 )
D'accordo, ti ringrazio. In effetti così posso fare a meno del riferimento ad Access, però non sono ancora riuscito a trovare l'equivalente in ADO dell'istruzione TransferText per importare il file di testo nella tabella.
Qualche suggerimento?

Ultima modifica di princepao : 26-10-2005 a 10:47.
princepao non è in linea   Bookmark and Share Rispondi quotando
Rispondi

Strumenti della discussione
Modalità di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smilies sono attive
Il codice IMG è attivo
il codice HTML è disattivato
Trackbacks are attivo
Pingbacks are attivo
Refbacks are disattivato

Salto del forum

Discussioni simili
Discussione Ha iniziato questa discussione Forum Risposte Ultimo messaggio
Problema con query di Access Damians MS Office, Access, VBA 2 28-07-2006 13:03
Query da Access 2003 saby68 Visual Basic .Net 1 08-01-2006 15:03
Esecuzione Query Da Visual Basic nodux MS Office, Access, VBA 3 12-11-2005 14:22
access 2000 - errore con query a campi in smsmaster Microsoft Windows 1 31-10-2003 15:16


Tutti gli orari sono GMT +1. Attualmente sono le 04:37.


Powered by vBulletin versione 3.8.0
Copyright © 2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0

Valid XHTML 1.0 Transitional  Creative Commons License

Eccetto dove diversamente specificato, i contenuti pubblicati in questa comunità sono rilasciati sotto Licenza
Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia License.
La comunita' di MasterDrive.it non e' responsabile di eventuali imprecisioni presenti nelle pagine.