Newsgroup: it.comp.appl.access
Titolo: Tabelle collegate ODBC, riallegare in automatico, come?

Ho un file .mdb con delle tabelle collegate odbc (si collegano ad Oracle).
L'mdb esegue una query ciclica ogni tot. minuti usando queste tabelle, alle
volte però succede che per problemi di rete (per esempio il blackout) o
riavvio del server dove risiedono le tabelle Oracle il link delle tabelle
collegate odbc nell'mdb salti con la conseguenza che l'mdb deve essere
chiuso e poi riaperto. C'è un modo per intercettare il verificarsi
dell'errore di link odbc? In sostanza i passaggi che vorrei realizzare più o
meno sono questi:
- viene a mancare l'odbc si verifica un errore
- intercetto l'errore e chiudo l'mdb
- adesso dovrei riaprirlo, ma come?
- se aperto tento di riallegare tabelle odbc, se ok resta aperto, altrimenti
si chiude e si ripete il ciclo
sul sito comune ho già visto qualche esempio che però riguardano tutti
collegamenti di tabelle BE/FE con file .mdb, la difficoltà iniziale per me
parte già dal modo d'impostare la stringa di connessione specifica per
l'odbc in questione. Se c'è qualche link in cui trovare qualche esempio per
questo tipo di problematica ve ne sono grato :-) Thanks a lot
Med

 qualche esempio per questo tipo di problematica ve ne sono grato :-)
per trovare la stringa di connessione corretta, basta prendere un db in cui 
hai già collegate le tabelle remote e leggere la stringa di collegamento...
fatto questo, basta un copia e incolla nella routine che ricollega le 
tabelle quando intercetti l'errore.
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
+-------

 ha scritto nel messaggio
news:Xns940E1B851...@193.43.96.1...

Io faccio una cosa simile, ti allego un riassunto spero funzionante.....!
Dalla Form di inizio su evento Load verifico il Flag
   If Not FlagLinked Then FlagLinked = RlnkODBCTbl
----------------------------------------------------------------------------
------------------------------------
Il tutto in un Modulo
Option Compare Database
Option Explicit
Private Const StrConnection="ODBC;DRIVER={SQL
Server};SERVER=TuoServer;UID=TuoUser;PWD=TuaPassword;DATABASE=TuoDB;LANGUAGE
=Italiano;DSN='';"
Public FlagLinked As Boolean
Public Function RlnkODBCTbl() As Boolean
   On Error GoTo Err_RlnkODBCTbl
   Dim tdf As TableDef
   Dim rs As Recordset
   Dim s As String
   Dim strSql As String
   RlnkODBCTbl = False
   strSql = "SELECT MsysObjects.Name FROM MsysObjects " & _
          "WHERE ((Left$([Name], 4) <> 'Msys') And (MsysObjects.Type = 4))"
   Set rs = CurrentDb.OpenRecordset(strSql)
   rs.MoveLast
   rs.MoveFirst
   Do Until rs.EOF
      s = rs.Fields(0).Value
      CurrentDb.TableDefs.Delete s
      Set tdf = CurrentDb.CreateTableDef(s)
      tdf.Connect = StrConnection
      tdf.SourceTableName = s
      CurrentDb.TableDefs.Append tdf
      Set tdf = Nothing
      rs.MoveNext
   Loop
   RlnkODBCTbl = True
Exit_Here:
   rs.close
   Set tdf = Nothing
   Exit Function
Err_RlnkODBCTbl:
   RlnkODBCTbl = False
   MsgBox "Impossibile connettersi al Server"
   Resume Exit_Here
End Function
Ciao.
@Alex.

>    Set rs = CurrentDb.OpenRecordset(strSql)
va' in errore proprio qui. Può dipendere dal driver ODBC? Il collegamento è
ad una vista (quindi readonly) di un database Firebird 1.5.
Med

 ha scritto nel messaggio
news:bm1mvg$a5d$1...@newsreader.mailgate.org...

Firebird non credo sia Collegabile ODBC_Direct, forse necessita del DSN.
A proposito io con Firebird non ho trovato un Driver Free che funzionasse.
Ciao.
@Alex.