|
Topic Topic Hot Topic New Topic Locked Topic Sticky Topic Hidden |
Problemi con DoCmd.Tranfertdatabase |
Post Reply
|
| Author | |||
goodfly65
Utente Base
Joined: 27/Feb/2012 Status: Offline Points: 71 |
Post Options
Thanks(0)
Quote Reply
Topic: Problemi con DoCmd.TranfertdatabasePosted: 28/Giu/2012 at 12:19 |
||
|
Ciao a tutti,
ho la necessità di importare i dati di una tabella da un database ad un altro e per risolvere ho creato un pulsante al quale ho assoviato la seguente routine: Private Sub Comando0_Click() DoCmd.TransferDatabase acImport, "Microsoft Access", _ "c:\2012_prova\iscrizioni gs\bck1503.accdb", acTable, "iscritti", _ "iscritti" End Sub Funzia ma ... c'è un però: nel database nel quale importo i dati esiste già una tabella che si chiama iscritti e quando eseguo l'importazione la tabella importata viene rinominata "iscritti 1". A me invece serve che il nome rimanga "iscritti". C'è la possibilità di cancellare la tabella esistente al momenti dell'importazione di quella "nuova"? E poi (ma qui andiamo un pò più sul complicato mi sa): posso al click del pulsante far apparire un "file browser" per scegliere il percorso e da quale database importare i dati evitando così di adare un percorso d'importzione predefinito? Grazie a tutti in anticipo per l'attenzione. Ruggero |
|||
![]() |
|||
Luciano
Utente Onorario
Joined: 05/Giu/2010 Location: Italy Status: Offline Points: 1972 |
Post Options
Thanks(0)
Quote Reply
Posted: 28/Giu/2012 at 15:52 |
||
|
DoCmd.RunSQL "Drop table iscritti"
ciao
|
|||
|
Dio è Amore e Pace
Catalogo funzioni |
|||
![]() |
|||
@Alex
Utente Onorario
Joined: 09/Apr/2012 Location: Mantova Status: Offline Points: 836 |
Post Options
Thanks(0)
Quote Reply
Posted: 28/Giu/2012 at 17:37 |
||
|
Per verificare se una Tabella esiste la cosa più semplice è chiamarla ed intercettare l'errore....!
Se hai un'errore non esiste, se non hai errore significa che ESISTE quindi procedi con il DELETE. Alternativa è CANCELLARLA a prescindere ed intercettare l'errore... skippandolo(che viene generato se non esiste). Per conoscenza puoi usare questo codice per verificarne la presenza:
Per cancellarla puoi usare il DeleteObject oppure il Metodo Delete sulla collection TableDefs. Personalmente userei più volentieri questo
Il Suggerimento dato da Luciano, essendo un comando DDL, viene eseguito lato BE o SERVER nel caso di LINKED TABLE, quindi ha l'azione di ELIMINARE la tabella REALE e non quella LINKATA... Nel caso in cui siano da eliminare le LOCAL_TABLE è perfettamente alternativo. Edited by @Alex - 28/Giu/2012 at 20:39 |
|||
|
Non SUPPORTO il CROSSPOST.
http://mirror.masterdrive.it/alessandrobaraldi/ Scaricare i DEMO modificando l'Estensione. |
|||
![]() |
|||
Luciano
Utente Onorario
Joined: 05/Giu/2010 Location: Italy Status: Offline Points: 1972 |
Post Options
Thanks(0)
Quote Reply
Posted: 29/Giu/2012 at 10:05 |
||
|
Per il secondo quesito in un modulo incolli questo codice:
"Nomefile" è una variabile dichiarata nel modulo di classe quindi è visibile anche al di fuori della routine "carica".
ora puoi sostituirla alla stringa "c:\2012_prova\iscrizioni gs\bck1503.accdb" il nome della variabile.
Ciao |
|||
|
Dio è Amore e Pace
Catalogo funzioni |
|||
![]() |
|||
@Alex
Utente Onorario
Joined: 09/Apr/2012 Location: Mantova Status: Offline Points: 836 |
Post Options
Thanks(0)
Quote Reply
Posted: 29/Giu/2012 at 13:07 |
||
|
Aggiungendo i riferimenti alle LIB OFFICE senza API possiamo accedere all'oggetto FILEDIALOG:
Vedete dettagli nell'utilizzo quì:http://support.microsoft.com/kb/288543/it Edited by @Alex - 29/Giu/2012 at 13:08 |
|||
|
Non SUPPORTO il CROSSPOST.
http://mirror.masterdrive.it/alessandrobaraldi/ Scaricare i DEMO modificando l'Estensione. |
|||
![]() |
|||
goodfly65
Utente Base
Joined: 27/Feb/2012 Status: Offline Points: 71 |
Post Options
Thanks(0)
Quote Reply
Posted: 30/Giu/2012 at 10:09 |
||
|
Grazie ad entrambi !!!
Ora sono in questa situazione: ho utilizzato la soluzione postata da Alex per quanto riguarda l'importazione e cancellazione della vecchia tabella e funziona ;) Ho fatto quanto detto da Luciano per il file dialog ma sbaglio sicuramente qualcosa in quanto quando vado a cliccare sul pulsante mi restituisce un errore nel debug "argomemento non valido" evidenziando la riga di comando del pulsante: Private Sub Comando0_Click() DoCmd.TransferDatabase acImport, "Microsoft Access", Nomefile, acTable, "iscritti", _ "iscritti" .. e lì sono arenato !!! Ho visto ora il suggerimento di Alex e proverò anche questo ma volevo sapere (quando hai un attimo) da Luciano se ha una mezza idea di dove mi sono incasinato. GRAZIE ancora !!! Ruggero |
|||
![]() |
|||
bob3m
Utente Senior
Joined: 30/Set/2011 Location: Gorizia Status: Offline Points: 435 |
Post Options
Thanks(0)
Quote Reply
Posted: 30/Giu/2012 at 18:33 |
||
|
Ciao goodfly65,
Probabilmente ti mancano i riferimenti, prova a controllare questi sono spuntati: Visual Basic for Application, Microsoft Access 11.0 Object Library, Microsoft DAO 3.6 Object Library,Microsoft ActiveX Data Objects 2.1 Library, OLE Automation. Ciao Massimo
Edited by bob3m - 30/Giu/2012 at 18:34 |
|||
![]() |
|||
Luciano
Utente Onorario
Joined: 05/Giu/2010 Location: Italy Status: Offline Points: 1972 |
Post Options
Thanks(0)
Quote Reply
Posted: 02/Lug/2012 at 08:33 |
||
|
Non ho Access 2007 o 2010.
Io importo una tabella da un file mdb.
Uso queste librerie:
visual basic for Application
microsoft access 10.0 object library ole automation microsoft activex data object library ------------
Come dice Bob occorre settare le librerie equivalenti
ciao
|
|||
|
Dio è Amore e Pace
Catalogo funzioni |
|||
![]() |
|||
@Alex
Utente Onorario
Joined: 09/Apr/2012 Location: Mantova Status: Offline Points: 836 |
Post Options
Thanks(0)
Quote Reply
Posted: 02/Lug/2012 at 09:08 |
||
|
A mio parere, il codice che ha generato le prime anomalie segnalate non coinvolge Riferimenti a Librerie in quanto si trattava di API.
Ricordo peraltro che le LIB Indispensabili solo poche: 1° Visual Basic For Application 2° Microsoft Access xx.x Object Library Solo poi si richiede DAO o ADO a seconda, ben sapendo che il DefaultType di Access è DAO, che tuttavia non sono indispensabili se non si aprono RS o non si accede ad Oggetti specifici delle LIB. Tuttavia l'utente non ha esposto l'anomalia in modo che sia possibile comprenderne la problematica... |
|||
|
Non SUPPORTO il CROSSPOST.
http://mirror.masterdrive.it/alessandrobaraldi/ Scaricare i DEMO modificando l'Estensione. |
|||
![]() |
|||
Luciano
Utente Onorario
Joined: 05/Giu/2010 Location: Italy Status: Offline Points: 1972 |
Post Options
Thanks(0)
Quote Reply
Posted: 02/Lug/2012 at 09:17 |
||
|
grazie Alex per le puntualizzazioni che arrichiscono sempre!
Potrei inviare la piccola demo, ma si tratta sempre di mdb e non so se sarà esplicativa e utile.
Ciao
|
|||
|
Dio è Amore e Pace
Catalogo funzioni |
|||
![]() |
|||
Post Reply
|
|
|
Tweet
|
| Forum Jump | Forum Permissions ![]() You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |