Ciao,
Puoi semplicemente creare una tabella dove memorizzare il tuo contatore ... per esempio poniamo di avere :
- Database1
- in questo database creare la tabella TblShared
- Database2
- in questo database colleghi la tabella TblShared che si trova nel Database1
.
Ovviamente vale anche il contrario, cioè creare la tabella Shared in Database2 e collegarla nel Database1. E' del tutto indifferente.
Poniamo di avere una certa struttura per la tabella TblShared di questo tipo:

dove :
- la field SharedType - identifica il valore da memorizzare e aggiornare (in questo esempio poniamo di impostare questa chiave = 10)
- la filed SharedConta - si legge e si aggiorna il valore del tuo contatore da condividere
.
Una struttura semplice e pratica come questa consente di crearsi diversi scenari e condivisione di diversi valori da interscambiare tra Database1 e Database2 e viceversa.
Adesso poniamo di avere due textbox in una Form in entrambe i database e un button per aggiornare il valore del contatore da condividere:
- TextBoxContaCurrent (in questa textbox preleviamo il valore attuale del contatore e lo si visualizza- evento Form_Load)
- TextBoxContaUpdate (in questa textbox impostiamo il nuovo valore del contatore da condividere tra i due database)
- ButtonUpdateConta - al suo Click si aggiorna in tabella il nuovo valore del contatore da condividere tra i databases
.
Sia in Database1 che in Database2, in questo esempio, si scriverà negli stessi eventi le stesse operazioni sia per prelevare il valore attuale del contatore che per aggiornarlo:
' LOAD FORM
Private Sub Form_Load()
' Retrieve Conta current
Me.TextBoxContaCurrent.Value = DBEngine(0)(0).OpenRecordset("Select SharedConta From TblShared Where SharedType = 10")(0)
End Sub
' UPDATE CONTA
Private Sub ButtonUpdateConta_Click()
' Check if numeric value
If Not IsNumeric(Me.TextBoxContaUpdate.Value) Then
MsgBox "Only numeric values are allowed.", vbExclamation
Exit Sub
End If
' Check update value
If Val(Me.TextBoxContaUpdate.Value) > 0 Then
DBEngine(0)(0).Execute ("Update TblShared Set SharedConta = " & Val(Me.TextBoxContaUpdate.Value) & " Where SharedType = 10;")
End If
' Retrieve Conta current
Me.TextBoxContaCurrent.Value = DBEngine(0)(0).OpenRecordset("Select SharedConta From TblShared Where SharedType = 10")(0)
End Sub
.
Ecco fatto ... con due righe di codice abbiamo condiviso un valore che entrambe i database possono condividere sia per visualizzarlo che per aggiornarlo.
- La tabella Shared, se ben strutturata, può consentire di condividere anche altre informazioni tra ii databases
- L'utilizzo della tabella collegata in uno dei due database, offre alcuni vantaggi:
- non dover scrivere codice extra per accedere all'informazioni. Viene trattata come una qualsiasi tabella del database.
- evitare problemi di blocco dei records e permessi per la lettura e scrittura dell'informazioni da condividere
- facilita l'uso dei valori salvati nella tabella in qualsiasi scenario, come all'interno di Query, Form, Report, Sringhe Sql con Select/Join/etc...etc...
.
Insomma, risulta una tecnica estremamente facile, veloce e compatibile con tutte le funzioni di MsAccess.