Newsgroup: it.comp.appl.access
Titolo: Funzione non trovata sul Sito Comune

Volevo testare la soluzione di Vincenzo Turturro: "Effettuare in maniera del
tutto automatica l'aggiornamento delle tabelle allegate ad un FE", che
richiama una Function "BrowseFolder()", la quale si dice essere presente nel
Sito Comune.
Purtroppo non riesco a trovarla. E' forse presente con un nome diverso o son
io che sto diventando cieco??? 8-(
Grazie a quanti sapranno indicarmela.

(.....)

A dire il vero, non è proprio in bella vista !
Sito Comune-DownLoad-Access 97 - 'Swicciare' tra vari back-end, dallo
stesso front-end di Federico Luciani
Vincenzo Turturro
---------------------------------------------------------
Se no diventiamo tutti **** dai portatili o peggio ancora 
provetti poeti fiorentini come vturturro.
(Così disse 
ivan....@tiscalinet.it
 Ven 25 Aug 2000 09:34:52 +0200)
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 Vincenzo Turturro
Vero ;-)
ma, se non ricordo male, l'ho creata leggendo la Faq:
?Come posso richiamare la finestra per la selezione e il recupero del path di
una directory?'
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
mailto:
it_db_...@usa.net
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

 > >richiama una Function "BrowseFolder()", la quale si dice essere
<<CUT>>
Grazie ad entrambi!
Va che č 'na bomba!
Un'altro piccolo help:
Se apro una maschera del FE la quale accede ai dati presenti sul BE mi
appare
la MsgBox di default con il msg: "Impossibile trovare il file C:\.....
BE.mdb".
Vorrei sostituire, sempre con una MsgBox, il messaggio suddetto (che
all'utente finale
dice tutto e niente) con uno del tipo "Il file BE.mdb nun si trova piů nella
posizione C:\....
Indicare il nuovo percorso." (VbOkOnly)
A questo punto devrebbe apparire la vostra bella finestrazza per la
selezione del path.
Il problema č questo: come faccio ad intercettare l'errore XXX che mi fa
apparire la MsgBox
predefinita? Avrei pensato infatti di scrivere:
If  Error() = XXX then
    MsgBox "quello che ho scritto sopra", ecc.
    AggiornaCollegamenti.ChangePath      'La funzione l'ho inserita nel
modulo AggiornaCollagamenti
End If
La soluzione puň andare?
TIA! (Grazie in anticipo giusto?)

 TIA! (Grazie in anticipo giusto?)
Giusto.
Prego
--
Silvio



Ok per la sintassi di Err, ma continuo a non capire quanto vale xxx
o dove reperire tale valore.
Inoltre volendo abbandonare questa strada, come tu mi consigli
ho dato un'occhiata alla funzione presente nella sezione Download:
"Allega97". Non l'ho provata ma in prima impressione non mi sembra
che mi cambi molto le cose:
Dovrà pur esserci un evento che richiami la funzione.
Io pensavo a q.cosa che controllasse i collegamenti all'apertura
dell'applicazione
o, al limite, all'apertura di una form associata ai dati collegati.
O forse c'è qualche altra funzione nel sito comune che mi è sfuggita?


Ti posto un estratto della funzione che utilizzo nei miei DB.
----------------------------------------------------------------------------
-
Function TabelleAllegate() As Integer
    ' Aggiorna le informazioni relative alla connessione
    ' delle tabelle allegate.
    Const NonExistent_Table = 3011
    Const File_Not_Found = 3024
    Const Access_Denied = 3051
    Const Read_Only_Database = 3027
    Dim NumTabelle As Integer, n As Integer
    Dim NomeFile As String, PercorsoRicerca As String, Temp As String
    Dim ValRestituito As Variant, PercRicDB As String, I As Integer
    Dim Tabella As TableDef
    Dim DB As Database, record As Recordset
    Set DB = DBEngine.Workspaces(0).Databases(0)
    TabelleAllegate = True: I = 0
    On Error Resume Next
    ' Controlla se le tabelle sono allegate correttamente testandone una
    Set record = DB.OpenRecordset("T_Pippo")
    If Err = 0 Then
      record.Close ' Esce se le informazioni sono corrette
      Exit Function
    End If
    ' Viene cercato il database PippoBE.MDB nelle directory e nei drive dove
potrebbe trovarsi
CicloDB:
    I = I + 1
    Select Case I
      Case 1: PercorsoRicerca = "c:\pippo2\"
      Case 2: PercorsoRicerca = "f:\pippo2\"
      Case 3: PercorsoRicerca = "c:\pippo\prova\"
      Case 4: PercorsoRicerca = "d:\pippo\"
    ' inserisci eventuali altri percorsi di ricerca
      Case Else: GoTo Uscita_non_riuscita
    End Select
    If (Dir$(PercorsoRicerca & "PippoBE.MDB") <> "") Then
      NomeFile = PercorsoRicerca & "PippoBE.MDB"
      If Err = 76 Or Err = 68 Then Err = 0: GoTo CicloDB
    Else
      GoTo CicloDB
    End If
    I = 0: n = 0
    ' Viene ora visualizzato ed azzerato l'indicatore di avanzamento
    ValRestituito = SysCmd(SYSCMD_INITMETER, "Si stanno allegando le
tabelle", DB.TableDefs.Count)
    ' Vengono adesso allegate tutte le tabelle che hanno la stringa di
connessione
    ' non vuota, cioè non sono tabelle locali, presupponendo di allegare
solo
    ' tabelle Access.
    NumTabelle = 1
    For I = 0 To DB.TableDefs.Count - 1
      Set Tabella = DB.TableDefs(I)
      If Tabella.Connect <> "" Then
        Tabella.Connect = ";DATABASE=" & NomeFile
        Err = 0
        Tabella.RefreshLink
        If Err <> 0 Then
          If Err = NonExistent_Table Then
            MsgBox "Il file '" & NomeFile & "' non contiene la tabella '" &
Tabella.SourceTableName & "'.", 16, "ERRORE"
          ElseIf Err = File_Not_Found Then
            MsgBox "Il file '" & NomeFile & "' non è stato trovato.", 16,
"ERRORE"
          ElseIf Err = Access_Denied Then
            MsgBox "Impossibile aprire il file '" & NomeFile & "' perchè di
sola lettura.", 16, "ERRORE"
          ElseIf Err = Read_Only_Database Then
            MsgBox "Impossibile riallegare le tabelle. Questo programma è
stato aperto di sola lettura.", 16, "ERRORE"
          Else
            MsgBox Error, 16, "ERRORE"
          End If
          TabelleAllegate = False
          DoCmd.Quit
        End If
      End If
      ValRestituito = SysCmd(SYSCMD_UPDATEMETER, NumTabelle)
      NumTabelle = NumTabelle + 1
    Next I
    GoTo Uscita_Finale
Uscita_non_riuscita:
    MsgBox "Controllare l'esistenza del database da allegare nelle directory
stabilite", 16, "Impossibile eseguire questo programma"
    TabelleAllegate = False
    DoCmd.Quit
Uscita_Finale:
    ValRestituito = SysCmd(SYSCMD_REMOVEMETER)
End Function
----------------------------------------------------------------------------
-
Naturalmente sostituisci a PippoBE.MDB il nome del tuo BE, T_Pippo con il
nome di una tabella da allegare e metti i percorsi opportuni dove il FE
potrà andarsi a cercare il BE.
Esiste una parte aggiuntiva che ricerca e collega anche i files .dbf: se ti
serve fammelo sapere.
Ciao


 La soluzione puň andare?
quelo che dovresti fare e' controllare, all'apertura
dell'mdb, cioe' sulla prima form che viene aperta, che le
tabelle siano allegate.
per fare questo ti basta tentare l'apertura di una di esse
set rst = dbs.openrecordset("tab")
se la tabella e' scollegata viene generato un errore, ti
basta intercettarlo e lanciare una procedura per
riallegarle
non ricordo l'errore, ma ti basta provare.
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access


 ha scritto nel messaggio
news:3A15AE38...@paperino.libero.it...

Ah Federico, che mona che sono!
Non avevo visto l'Autoexec con la condizione.
E sě che con Access 2.0 era l'unico modo per lanciare comandi all'avvio!
Cosa vuoi, adesso ci sono le opzioni di avvio...
Ok! Capito tutto! Mandi e grazie! (Anche al buon Silvio)