Collegamento tabelle in automatico

di il
7 risposte

Collegamento tabelle in automatico

Buongiorno ragazzi,
prima di andare avanti con il mio db, vorrei qualche consiglio e qualche dubbio da verificare.

Il DB è composto da 2 files. "Tabelle" e "DataEntry".

Se sposto la cartella completa in un altro percorso, bisogna ricollegare le tabelle manualmente.
1. C'è un modo per farle collegare automaticamente?
Quando si apre il DataEntry, automaticamente si apre la maschera MSKMODELLO (ora ho tolto l'apertura automatica perchè bisogna collegare le tabelle) e, tramite funzione, si crea un backup.

In MSKMODELLO, tramite combo, si aggiunge la versione, collegata al modello.

2. c'è un modo per cancellare dalla combo le versioni già inserite per il suddetto modello?

Se clicco su "Modifica" entro nella versione.

3. Se la elimino, si chiude la maschera ma in MSKMODELLO resta quell'orrenda scritta "#ELIMINATO". Si potrebbe auto refreshare la maschera? (tipo F5 in automatico per intenderci)

Se clicco su "Fusto" entro nell'inserimento dati fusto. (maschera continua)

4. Se inserisco il NPEZZI e poi non inserisco le 2 combo successive, mi va in errore. C'è un modo per non salvare il record fino al suo completamento?

Perdonatemi se ho scritto cazzate nel codice o ho fatto casini.

Grazie per un vostro possibile aiuto.
Logicamente si accettano critiche, e consigli utili a proseguire per la giusta strada.

https://drive.google.com/file/d/1K8hjvGrlvkqT8xkT3LXqnz4hmdaRbAmC/view?usp=sharing

7 Risposte

  • Re: Collegamento tabelle in automatico

    dark ha scritto:


    Il DB è composto da 2 files. "Tabelle" e "DataEntry".

    Se sposto la cartella completa in un altro percorso, bisogna ricollegare le tabelle manualmente.
    1. C'è un modo per farle collegare automaticamente?
    Regole del forum: 1 thread = 1 domanda (o un argomento da trattare).
    Visto che l'oggetto parla di collegamento tabelle teniamo quello? Meglio.
    Sì, c'è la possibilità di farlo, in tanti modi, dai più semplici (sempliciotti) ai più seri, in base anche a come sono distributiti il FrontEnd (quello che tu credo chiami "DataEntry") e il BackEnd (quello che credo tu chiami "Tabelle")
    Tra i lavori di @Alex trovi certamente qualcosa, perché so che c'è.
    masterdrive.it/microsoft-access-79/?prefixid=articolo
    mirror.masterdrive.it/alessandrobaraldi/
    oppure in generale su questo forum, su altri, sul web in generale cerca con i termini "FrontEnd" "relink" et similia.
  • Re: Collegamento tabelle in automatico

    Grazie per la risposta.
    Si, teniamo la prima domanda.
  • Re: Collegamento tabelle in automatico

    Ciao, ti pubblico un esempio che uso io per connettermi a tre database diversi.
    Prima cancello tutte le tabelle, poi in base alla selezione fatte da una casella combinata dalla maschera mPrincipale connetto i db.
    
    Public Function ConnettiDati()
    Dim TLink, StringaConnessione, DatabaseSelezionato, TipoConnessione As String
    Dim obj As AccessObject, dbs As Object
    DatabaseSelezionato = Form_mPrincipale.mPrincipaleSMimpostazioni.Form.Controls("Database")
    DoCmd.Close acForm, "mPrincipale", acSaveNo
    Set dbs = Application.CurrentData
    For Each obj In dbs.AllTables
        TLink = obj.Name
        If Left(obj.Name, 4) = "MSys" Then
        Else
            If ((obj.Name = "hyperlink") Or (obj.Name = "impostazioni")) Then
            Else
                CurrentDb.TableDefs.Delete TLink 'DoCmd.RunSQL "drop table " & TLink & ";"
            End If
        End If
    Next obj
    Select Case DatabaseSelezionato
        Case "Dado"
            StringaConnessione = "ODBC;DSN=DadoDati;UID=;PWD=;LANGUAGE=us_english;DATABASE=Dado"
            TipoConnessione = "ODBC Database"
        Case "StudioM"
            StringaConnessione = "ODBC;DSN=StudioM;UID=MarioDZ;PWD=abcde;LANGUAGE=us_english;DATABASE=StudioM"
            TipoConnessione = "ODBC Database"
        Case "Orizzonti"
            StringaConnessione = "Y:\Qualità\Database\DatiGestione.accdb"
            TipoConnessione = "Microsoft Access"
        Case Else
            MsgBox "Non è stato selezionato un Database"
            GoTo Uscita
    End Select
    
    DoCmd.TransferDatabase acLink, TipoConnessione, StringaConnessione, acTable, "tabella1", "tabella1"
    
    If (InStr(CurrentProject.Name, "Documenti")) Then
        DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DSN=DatiLandlord;UID=MarioDZ;PWD=abcde;LANGUAGE=us_english;DATABASE=DatiLandlord", acTable, "modelli", "modelli_landlord"
        DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DSN=DatiLandlord;UID=MarioDZ;PWD=abcde;LANGUAGE=us_english;DATABASE=DatiLandlord", acTable, "submodelli", "submodelli_landlord"
    End If
    
    Select Case DatabaseSelezionato
        Case "Dado"
            DoCmd.TransferDatabase acLink, TipoConnessione, StringaConnessione, acTable, "tabella2", "tabella2"
        Case "StudioM"
            DoCmd.TransferDatabase acLink, TipoConnessione, StringaConnessione, acTable, "tabella3", "tabella4"
        Case "Orizzonti"
        Case Else
    
    End Select
    
    MsgBox "Dati connessi"
    
    Uscita:
        Exit Function
    End Function
    
  • Re: Collegamento tabelle in automatico

    Nota che tengo la tabella impostazioni che non viene cancellata ed è nel frontend, in modo che ogni postazione abbia le sue impostazioni selezionabili.
  • Re: Collegamento tabelle in automatico

    Philcattivocarattere ha scritto:


    dark ha scritto:


    Il DB è composto da 2 files. "Tabelle" e "DataEntry".

    Se sposto la cartella completa in un altro percorso, bisogna ricollegare le tabelle manualmente.
    1. C'è un modo per farle collegare automaticamente?
    Regole del forum: 1 thread = 1 domanda (o un argomento da trattare).
    Visto che l'oggetto parla di collegamento tabelle teniamo quello? Meglio.
    Sì, c'è la possibilità di farlo, in tanti modi, dai più semplici (sempliciotti) ai più seri, in base anche a come sono distributiti il FrontEnd (quello che tu credo chiami "DataEntry") e il BackEnd (quello che credo tu chiami "Tabelle")
    Tra i lavori di @Alex trovi certamente qualcosa, perché so che c'è.
    masterdrive.it/microsoft-access-79/?prefixid=articolo
    mirror.masterdrive.it/alessandrobaraldi/
    oppure in generale su questo forum, su altri, sul web in generale cerca con i termini "FrontEnd" "relink" et similia.
    Phil dopo varie ricerche ho risolto. Grazie
  • Re: Collegamento tabelle in automatico

    Magari dare qualche indicazione tecnica per agevolare eventuali lettori non sarebbe male... cosa dici...?
  • Re: Collegamento tabelle in automatico

    Si scusami. Ho risolto creando un modulo con questo codice:
    Function Relink()
    Dim tdf As DAO.TableDef
    Dim strPATH As String
    
    strPATH = CurrentProject.Path & "\Tabelle.accdb"
    For Each tdf In DBEngine(0)(0).TableDefs
        If Len(tdf.Connect) > 0 Then
           tdf.Connect = ";DATABASE=" & strPATH
           tdf.RefreshLink
        End If
    Next
    End Function
    dove TABELLE.ACCDB è il file da collegare

    con una macro AutoExec dove richiama la funzione Relink()
Devi accedere o registrarti per scrivere nel forum
7 risposte