Hey. J'ai la base de données d'accès principale située sur un PC autonome hors du réseau et j'ai une base de données d'accès avec des tables liées sur le réseau lié au PC autonome. J'ai lié les tables en créant un partage réseau sur le PC autonome et en les reliant par un chemin. Puis-je le configurer de sorte que lorsque la base de données est ouverte, il met automatiquement à jour les tables liées. Benrafraîchir les tables liées en accès
Répondre
Vous pouvez. Je trouve souvent pratique d'utiliser un petit chèque qui s'exécute au démarrage (défini par les options de démarrage) et vérifie une variété de choses, y compris les tables liées. À cette fin, je tiens également une table de tables liées sur la machine locale, bien qu'une liste de tables liées puisse être obtenue en itérant à travers la collection TableDefs, je pense qu'il est un peu plus sûr de garder une liste.
Le formulaire de vérification peut vérifier tous les liens et si un lien est brisé ou manquant, soit demander à l'utilisateur un nouvel emplacement ou utiliser un emplacement fixe. Si aucun problème n'est trouvé, le formulaire peut se fermer et ouvrir un menu ou un autre formulaire.
Dans le cas de rattachement à une table liée, il est possible d'obtenir la connexion à utiliser à partir de:
CurrentDB.TableDefs("TableName").Connection
Voici quelques notes:
Sub RelinkTables(Optional strConnect As String = "")
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim strSQL
Dim tdf As DAO.TableDef
On Error GoTo TrapError
Set db = CurrentDb
If strConnect = "" Then
''Where Me.txtNewDataDirectory is a control on the check form
strConnect = "MS Access;PWD=databasepassword;DATABASE=" & Me.txtNewDataDirectory
End If
''Table of tables to be linked with two fields TableName, TableType
Set rs = CurrentDb.OpenRecordset("Select TableName From sysTables " _
& "WHERE TableType = 'LINK'")
Do While Not RS.EOF
''Check if the table is missing
If IsNull(DLookup("[Name]", "MSysObjects", "[Name]='" & rs!TableName & "'")) Then
Set tdf = db.CreateTableDef(RS!TableName, dbAttachSavePWD, _
rs!TableName, strConnect)
''If the table is missing, append it
db.TableDefs.Append tdf
Else
''If it exists, update the connection
db.TableDefs(rs!TableName).Connect = strConnect
End If
db.TableDefs(rs!TableName).RefreshLink
RS.MoveNext
Loop
Set db = Nothing
RS.Close
Set RS = Nothing
Exit_Sub:
Exit Sub
TrapError:
HandleErr Err.Number, Err.Description, "Relink Tables"
End Sub
pouvez-vous reformuler en utilisant sans équivoque termes ? Où est votre front-end et où est votre back-end. Quoi qu'il en soit, si vous avez des tables liées, elles sont mises à jour lorsque vous les mettez à jour. Dans quel but ? –
Avez-vous googlé "mettre à jour les tables liées à l'accès"? Si non, pourquoi pas? C'est l'une des questions d'accès les plus courantes et il a été répondu à un milliard de fois par million de formes de mille manières différentes. –