Discussione chiusa
Visualizzazione dei risultati da 1 a 2 su 2

nascondere riquadro di spostamento su relink tabelle

  1. #1
    L'avatar di Tommy_G
    Tommy_G non è in linea Scribacchino
    ho postato nella sezione sbagliata , il problema lo avrei risolto, comunque, se possibile chiedo a un admin di spostare su "ACCESS"

    apro altro thread legato in parte a questo http://forum.masterdrive.it/access-7...abelle-101079/
    su suggerimento di Alex faccio eseguire il relink alle tabelle del db dando agli utenti due opzioni:
    1) relink alle tabelle da BE fatto importare (di nascosto) su desktop dell'utente
    2) relink alle tabelle direttamente da BE su server

    nel primo caso nessun problema in quanto la procedura di relink dal db fatto scaricare su desktop è velocissima e non ci si avvede dell'apertura e della chiusura del riquadro di spostamento , questo perchè su evento in chiusura richiamo una sub che punta a una tabella e di conseguenza fa richiudere il riquadro

    Public Sub HideNavPane()
        DoCmd.SelectObject acTable, "ABI_CAB", True
        DoCmd.RunCommand acCmdWindowHide
    End Sub
    
    il problema mi si pone quando il relink viene eseguito nel secondo dei casi elencati, ovvero, sulle tabelle poste sul server

    ho provato a richiamare la sub in vari punti dell'evento che genera il relink alle tabelle ma non c'è nulla da fare
    If CurrentProject.AllForms("inserimento_dati").IsLoaded = True Then
    DoCmd.Close acForm, "inserimento_dati"
    End If
    
    Dim sPath As String
    'prova casa
    'sPath = "\\192.168.1.195\admin\Prova BE\Incassi_Fraudolenti_.mdb"
    'prova ufficio
    sPath = "\\TO1MSDB7\fms\Archivi vari\Mezzi di Pagamento\0-DataBase Fraudolenti\Incassi_Fraudolenti_.mdb"
    
    DoCmd.Hourglass True
    
    If Len(Dir(sPath)) > 0 Then
    
    If EsisteOggetto("TblRecuperoSpese1", acTable) Then
        DoCmd.DeleteObject acTable, "TblRecuperoSpese1"
    End If
    
    If EsisteOggetto("Incassi_Fraudolenti_Compagnie_del_Gruppo1", acTable) Then
        DoCmd.DeleteObject acTable, "Incassi_Fraudolenti_Compagnie_del_Gruppo1"
    End If
    
    If EsisteOggetto("TblRecuperoSpese", acTable) Then
        DoCmd.DeleteObject acTable, "TblRecuperoSpese"
    End If
    
    If EsisteOggetto("Incassi_Fraudolenti_Compagnie_del_Gruppo", acTable) Then
        DoCmd.DeleteObject acTable, "Incassi_Fraudolenti_Compagnie_del_Gruppo"
    End If
    
    Dim TLink As String
    Dim LinkBE As String
    Dim rs As DAO.Recordset
        LinkBE = sPath
        Set rs = CurrentDb.OpenRecordset("TTabelleCollegate")
        rs.MoveFirst
    Do Until rs.EOF
        TLink = rs.Fields(0).Value
        CurrentDb.TableDefs.Delete TLink
        DoCmd.TransferDatabase acLink, "Microsoft Access", LinkBE, acTable, TLink, TLink
        rs.MoveNext
    Call HideNavPane
    Loop
    
    DoCmd.Hourglass False
    DoCmd.OpenForm "inserimento_dati"
    
    Else
        MsgBox "ATTENZIONE!" & vbNewLine _
        & "non è possibile importare i dati dal server" & vbNewLine _
        & "verificare correttezza del percorso di rete:" & vbNewLine & sPath & vbNewLine & vbNewLine _
        & "l'applicazione verrà aperta con gli ultimi dati disponibili", vbCritical, "Import data annullato"
        DoCmd.OpenForm "inserimento_dati"
    DoCmd.Hourglass False
    End If
    
    DoCmd.OpenForm "inserimento_dati"
    
    è evidente che per funzionare non vuole maschere aperte , ma dato che devo comunque eseguire il codice la cosa diventa un controsenso
    ps
    ho anche provato a fare eseguire il codice con la form in modalità hide senza successo
    Ultima modifica di Tommy_G; 06-06-2019 13:08  Motivo: ho postato nella sezione sbagliata se possibile chiedo a un admin di spostare su "ACCESS"

  2. #2
    L'avatar di Tommy_G
    Tommy_G non è in linea Scribacchino
    mi correggo , ho risolto così:
    If Len(Dir(sPath)) > 0 Then
    DoCmd.OpenForm "ImportaTabellaManuale", , , , , acHidden
    
    If EsisteOggetto("TblRecuperoSpese1", acTable) Then
        DoCmd.DeleteObject acTable, "TblRecuperoSpese1"
    End If
    
    If EsisteOggetto("Incassi_Fraudolenti_Compagnie_del_Gruppo1", acTable) Then
        DoCmd.DeleteObject acTable, "Incassi_Fraudolenti_Compagnie_del_Gruppo1"
    End If
    
    If EsisteOggetto("TblRecuperoSpese", acTable) Then
        DoCmd.DeleteObject acTable, "TblRecuperoSpese"
    End If
    
    If EsisteOggetto("Incassi_Fraudolenti_Compagnie_del_Gruppo", acTable) Then
        DoCmd.DeleteObject acTable, "Incassi_Fraudolenti_Compagnie_del_Gruppo"
    End If
    
    Dim TLink As String
    Dim LinkBE As String
    Dim rs As DAO.Recordset
        LinkBE = sPath
        Set rs = CurrentDb.OpenRecordset("TTabelleCollegate")
        rs.MoveFirst
    Do Until rs.EOF
        TLink = rs.Fields(0).Value
        CurrentDb.TableDefs.Delete TLink
        DoCmd.TransferDatabase acLink, "Microsoft Access", LinkBE, acTable, TLink, TLink
    Call HideNavPane
        rs.MoveNext
    Loop
    

Discussione chiusa

Potrebbero interessarti anche ...

  1. problemi con riquadro attività dopo relink
    Da fabietto10 nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 01-07-2019, 20:17
  2. Relink automatico tabelle e accesso risorsa di rete
    Da maxs84 nel forum Microsoft Access
    Risposte: 17
    Ultimo Post: 07-09-2016, 12:40
  3. Visualizzazione 'riquadro spostamento'
    Da weldor nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 09-12-2015, 19:48
  4. Risposte: 4
    Ultimo Post: 04-12-2013, 23:04
  5. Nascondere riquadro di spostamento in vba
    Da mrk88 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 24-05-2011, 19:40