salve vi chiedo una spiegazione se possibile ad un impedimento che ho in una applicazione .mde, divisa BE su server - FE su pc client; l'applicazione comprende una serie di utenti (quindi c'è un file Protezione.mdb, creato con procedura standard di Access - il wizard) di cui due qualificati come amministratori e due come utenti completi.
la procedura serve ad aggiornare il percorso di collegamento delle tabelle collegate (quello che fa la funzione 'Gestione tabelle collegate' da menù access), dopo aver fatto selezionare all'utente il file dei dati.
il problema è che gli utenti amministratori riescono ad eseguire e concludere la procedura, mentre per gli altri utenti ne esce come se ci fosse errore con il messaggio prefissato da me "Impossibile connettersi al Server":...perché? forse perché appunto solo utenti amministratori possono eseguire quel comando?...e se sì che alternative ho?
riporto codice che sto usando, non creato da me ma preso leggendo in questo forum e su sito Alex:
in un modulo separato:
poi su una form c'è un controllo button che al click prima apre una finestra di selezione percorso di un file, e poi "cattura" la stringa (strFile) e la usa nella funzione di cui sopra:codice:Option Compare Database Option Explicit Public Const fTabella = "Tables" Public Const cLnkTbl As String = "_LinkedTables" Public Function LinkTbl(pthbe As String) As Boolean On Error GoTo Err_LinkTbl Dim rs As DAO.Recordset Dim strsql As String Dim dbCurr As DAO.Database Dim S As String Dim mPathBE As String mPathBE = pthbe LinkTbl = False Set dbCurr = CurrentDb strsql = cLnkTbl dbCurr.TableDefs.Refresh Set rs = CurrentDb.OpenRecordset(strsql) rs.MoveFirst Do Until rs.EOF S = rs.Fields(0).Value If Esiste_Oggetto(S, fTabella) Then CurrentDb.TableDefs.Delete S DoCmd.TransferDatabase acLink, "Microsoft Access", pthbe, acTable, S, S rs.MoveNext Loop LinkTbl = True Exit_Here: rs.Close Set rs = Nothing Exit Function Err_LinkTbl: LinkTbl = False MsgBox "Impossibile connettersi al Server" Resume Exit_Here End Function Public Function Esiste_Oggetto(ByVal Nome_Ogg As String, _ Typ_Ogg As String, Optional ByVal Nome_Dbs As String = "") As Boolean '***************************************************************** 'Name : Esiste_Oggetto (Function) 'Purpose : Verifie if Database Object(Table, Query, Form or ...) Exist 'Inputs : String=Object Name ' : Type="Tables" or "Forms" or "Queries" ' : "Scripts" or "Reports" or "Modules" ' : Nome_Dbs=Database.mdb (Source where Function search) 'Output : True if Object Exist '***************************************************************** Dim dbs As Database Dim tdf As TableDef Dim qdf As QueryDef Dim X, num_ogg As Integer If Nome_Dbs = "" Then Set dbs = CurrentDb Else Set dbs = OpenDatabase(Nome_Dbs) End If Select Case Typ_Ogg Case fTabella For Each tdf In dbs.TableDefs If tdf.Name = Nome_Ogg Then Esiste_Oggetto = True dbs.Close Set dbs = Nothing Exit Function End If Next tdf End Select Esci: Esiste_Oggetto = False dbs.Close Set dbs = Nothing End Function
grazie in anticipo.codice:Call LinkTbl(strFile)





LinkBack URL
About LinkBacks
Rispondi quotando

