Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 2 su 2

Riquadro di spostamento che appare e scompare

  1. #1
    oierpa non è in linea Novello
    Post
    35
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti e buon anno!
    So che il tema è stato già trattato, ma ho un problemino residuo che mi sta facendo impazzire.
    Sto lavorando su un db che mi hanno dato e sul relink delle tabelle ho il riquadro di spostamento che appare, bianco, e scompare, ogni volta che viene collegata una tabella.
    In teoria potrei lasciarlo così, perché alla fine della routine di collegamento il pannello non c'è più, ma non è il massimo esteticamente.
    Public Sub HideNavPane()
        DoCmd.SelectObject acTable, "Elenco_tab", True
        DoCmd.RunCommand acCmdWindowHide
    End Sub
    
    
    Public Sub RefreshLink(BackendDrive, BackendPath)
    
        Dim strSourceDatabase As String
        Dim strSourceName As String
        Dim strLocalName As String
        Dim strSQL As String
        Dim strDBName As String
        Dim rs As Recordset
            
        Dim intPos As Integer
        Dim DriveLetter As String
        Dim FullPath As String
        Dim BlockName As String
        
        
        DoCmd.Hourglass False
        
        Forms![mslogin].eticStato.Caption = "Collegamento delle tabelle "
        
        
        DriveLetter = BackendDrive 'disco dove risiedono i dati del backend
        
        strSQL = "SELECT Elenco_tab.Nome_tab, Elenco_tab.[flag] FROM Elenco_tab WHERE (((Elenco_tab.[flag])=True))"
        
        Set rst = CurrentDb.OpenRecordset(strSQL)
        rst.MoveFirst
        
        Do Until rst.EOF
            strSourceName = rst.Fields("Nome_tab")
            strLocalName = rst.Fields("Nome_tab")
            'strBlockName = rst.Fields("TableGroup")
            strDBName = "commesse_dati.mdb"
            strSourceDatabase = BackendPath & "\" & strDBName
            'Debug.Print "DB dati: " & strSourceDatabase
            
            
            If Relink(strSourceName, strSourceDatabase, strLocalName, strLocalName) = False Then
                Set rst = Nothing
                Exit Sub
            Else
                'Mostra lo status dell'operazione
                Forms![mslogin].eticStato.Caption = "Collegamento di " & strSourceName
                DoEvents
            End If
        
            rst.MoveNext
        Loop
        Set rst = Nothing
        
        'Mostra all'utente che il collegamento è completo
        Forms![mslogin].eticStato.Caption = "Link completato per tutte le tabelle."
        DoEvents
            
     
        DoCmd.Hourglass False
    
    End Sub
    
    Function Relink(strTableName As String, strSourceDatabase As String, strSourceName As String, strLocalName As String) As Boolean
        On Error GoTo DoLink_Error:
        
        Dim dbs As dao.Database
        
        Relink = True
        
        'Apre il DB backend
        Set dbs = DBEngine.OpenDatabase(strSourceDatabase, False, False)
        
        'Cancella le tabelle, collegate, se esistono
        CurrentDb.TableDefs.Delete strTableName
        
        'Debug.Print "DELETE: " & strTableName
        'CurrentDb.TableDefs.Refresh
            
        'Crea il collegamento
        DoCmd.SetWarnings False
        DoCmd.TransferDatabase acLink, "Microsoft Access", strSourceDatabase, acTable, strSourceName, strLocalName, False
        Call HideNavPane
        DoCmd.SetWarnings True
            
            
        Set dbs = Nothing
        Exit Function
        
    DoLink_Error:
        Select Case Err.Number
            Case 3011
                MsgBox "Try Linking Again." & vbCrLf & Err.Description, vbCritical, APP_NAME
                Relink = False
                Exit Function
            Case Else
                Resume Next
        End Select
     
    End Function
    
    Per nascondere il pannello ho usato la sub HideNavPane (riportata ad inizio codice) che ho trovato proprio qui. Come dicevo, tutto funziona, e il pannello appare per qualche frazione di secondo per ogni tabella che vado a collegare, ma essendo le tabelle una trentina, non è il massimo vedere questa striscia bianca che appare e scompare con conseguente traslazione a destra della maschera di avvio (dove è presente il tasto per azionare il relink delle tabelle).

    Grazie in anticipo

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,745
    Like Inviati  
    0
    Like Ricevuti  
    20
    Congela lo schermo...
    Docmd.Echo False
    
    Fai attenzione a ripristinarlo nel punto giusto ed includerlo nella gestione errori.
    ℹ️ Leggi di più su @Alex ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. nascondere riquadro di spostamento su relink tabelle
    Da Tommy_G nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 06-06-2019, 11:58
  2. Visualizzazione 'riquadro spostamento'
    Da weldor nel forum Microsoft Access
    Risposte: 7
    Ultimo Post: 09-12-2015, 19:48
  3. ProgressBar percentuale che appare e scompare
    Da HopeFirst nel forum Visual Basic .Net
    Risposte: 4
    Ultimo Post: 13-08-2015, 12:30
  4. Risposte: 4
    Ultimo Post: 17-02-2013, 20:25
  5. Nascondere riquadro di spostamento in vba
    Da mrk88 nel forum Microsoft Access
    Risposte: 5
    Ultimo Post: 24-05-2011, 19:40