Newsgroup: it.comp.appl.access
Titolo: aggiornamento del back end

Ho distribuito ai miei colleghi un programma in access 2000 che comprende
sia il FE che il BE, ed ognuno di loro è completamente autonomo.
A seguito di variazioni aziendali ho dovuto modificare 2 delle 10 tabelle
aggiungendo dei nuovi campi.
Diligentemente mi sono recato sul sito comune dal quale ho preso una serie
di istruzioni per aggiornare il BE.
Riassunto del mio programma:
Nome BE:  Istanze_be.mdb
Vecchio Be da aggiornare Istanze_beold.mdb
Tabelle modificate :  "Anagraficaditta" e "Visite"
- ho creato quindi un nuovo BE con tutte le tabelle nuove e vecchie a 0
record;
- ho creato una maschera con un pulsanto "aggiorna datatabase" che ha la
seguente istruzione
Prima ho dichiarato la fuunzione esistetabella (sitocomune faq general015)
provando solo ad aggiornare una tabella (anagrafica ditta) e non due.
Option Compare Database
 Public Function EsisteTabella(Anagraficaditta As String, Optional
Istanze_beold) As Boolean
   ' restituisce True se la tabella NomeTab del database NomeDbs (opzionale)
esiste
  Dim dbs As Database, tdf As TableDef
  If IsMissing(Istanze_beold) Then
   Set dbs = CurrentDb
  Else
   Set dbs = Opendatabase(Istanze_beold)
  End If
  EsisteTabella = False
  For Each tdf In dbs.TableDefs
   If tdf.Name = NomeTab Then
    EsisteTabella = True
    Exit For
   End If
  Next tdf
  Set dbs = Nothing
  End Function
dopo di che ho inserito la seguente istruzione nella proprietà click del
pulsante di comando:
Private Sub Comando0_Click()
 Set dbsExt = Opendatabase("Istanze_beold.mdb")
 For Each tdf In dbsExt.TableDefs
  If (tdf.Attributes And dbSystemObject) = False And (tdf.Attributes And
dbHiddenObject) = False Then
   If EsisteTabella(tdf.Name) Then
    DoCmd.RunSQL "INSERT INTO " & tdf.Name & " SELECT * FROM " & tdf.Name &
" IN " & "istanze_beold.mdb"
   End If
  End If
  Next tdf
  Set dbsExt = Nothing
End Sub
Allora il problema intanto è che  per la espressione Opendatabase il
programma si arresta avvertendomi che c'è un errore di compilazione e la sub
o function non è definita;
per cui cosa sbaglio?
E' corretta la procedura che ho usato?
Come e dove correttamente inserire l'aggiornamento della seconda tabella
(Visite) ?
così per esempio : Public Function EsisteTabella(Anagraficaditta, Visite As
String, Optional Istanze_beold) As Boolean
Grazie
Ph. Barnum

 ha scritto nel messaggio
news:4266a.299638$AA2.11...@news2.tin.it...

Che versione di Access usi?
Sembrerebbe dall'errore che ricevi che usi una versione di Access successiva
ad Access 97.
Non ho letto attentamente le tue routine, ma ho notato che fanno riferimento
alla libreria Microsoft DAO.
Se quindi, come penso, che usi Access 2000 0 2002 deve aggiungere al tuo
database il riferimento alla libreria Microsoft DAO  e fallo in maniera tale
che, nella lista dei riferimenti, preceda il riferimento alla libreria
Microsoft ADO.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Uso access 2000 con l'aggiornamento sr1.
Purtroppo non so come aggiungere al mio database il riferimento alla
libreria DAO, credo di avere capito leggendo qua e là in file di esempio che
sia una semplice riga di routine, ma francamente non so cosa scrivere (
Dim conn As DAO.Connection  potrebbe andare??)
E' un pò tardi e non potrò provare prima di domani sera, comunque grazie per
i tuoi aiuti.
Ph. Barnum


 Ciao
basta che vai in un modulo
nella barra in alto vai in strumenti (tools) riferimenti (references) e
metti anche microsoft DAO 3.6 object library
Stefano

 ha scritto nel messaggio
news:iub6a.301484$AA2.11...@news2.tin.it...

Per aggiungere un riferimento al tuo database apri la finestra dell'editor
VBA; dal menu Strumenti seleziona il comando Riferimenti... ; si aprirà una
finestra Riferimenti dove cercherai ed abiliterai il riferimento alla
libreria Microsoft DAO; agendo sui pulsanti Priorità sposta il riferimento
alla libreria Microsoft DAO in maniera che preceda il riferimento alla
libreria Microsoft ADO; pigia il tasto OK; chiudi la finestra dell'editor
VBA.
