08. juli 2002 - 13:36Der er
9 kommentarer og 1 løsning
Ændre sammenkædning
Jeg har en Access 97 client applikation, som henter henter og gemmer data i en Access 97 database på serveren.
Hvis man i clint applikationen går ind i "Funktioner -> Tilføjelsesprogrammer -> Sammenkædet tabel-styring" så referer alle sammenkædninger til h:\ dette vil jeg gerne ændre til j:\
Altså henter og gemmer client applikationen alle dataer fra h:\MyDatabase.mdb Dette vil jeg gerne ændre til at applikationen henter og gemmer alle dataer fra j:\MyDatabase.mdb
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Der hvor du var: Funktioner -> Tilføjelsesprogrammer -> Sammenkædet tabel-styring
Her klikker du "Marker alle" og klikker på afkrydsningsfeltet i nedrste venstre hjørne, som hedder noget med "Spørgs altid" Derefter klikker du OK og vælger ny placering.
Jeg har kodet mig ud af den slags. Det er sikkert ikke den eneste måde, men du får min kode her og kan så rette den til så den passer med dine stier:
Public Sub TableAttach(ByVal vsDbName As String, ByVal vbTestBase As Boolean) Dim tdf As TableDef Dim newTdf As TableDef Dim db As Database Dim tdfs As New Collection Dim prop As Property Dim i As Long Set db = DBEngine.Workspaces(0).OpenDatabase(vsDbName)
For Each tdf In db.TableDefs If InStr(tdf.Connect, "ODBC") = 0 And InStr(tdf.Name, "MSYS") = 0 And _ Trim(tdf.Connect) <> "" Then ' Attached tabel fundet. If vbTestBase Then tdf.Connect = ";DATABASE=H:\avenir\access\Kundeinfo_data.mdb" Else tdf.Connect = ";DATABASE=K:\Databaser\Kundeinfo\Drift\Data\Kundeinfo_data.mdb" End If Set newTdf = db.CreateTableDef For Each prop In tdf.Properties On Error Resume Next newTdf.Properties(prop.Name) = prop.Value Next prop tdfs.Add newTdf End If Next 'tdf
For Each tdf In tdfs db.TableDefs.Delete tdf.Name Next db.Close
Set db = DBEngine.Workspaces(0).OpenDatabase(vsDbName) For i = 1 To tdfs.Count Set tdf = tdfs(i) db.TableDefs.Append tdf Next 'tdf db.Close Set tdf = Nothing Set db = Nothing End Sub
Prøv at åbne backenden og se om tabellerne rent fysisk ligger der stadig!
Så længe du ikke sletter sammenkædningen i frontenden, så kan du reelt ikke se om tabellerne findes i backenden. Du kan med andre ord godt have fået slettet den i backenden uden at du kan se det i frontenden - før du enten forsøger at sammenkæde igen eller prøver at åbne en af tabellerne.
Hvis de ikke findes i backenden, så kan de bare slettes i frontenden.
Det må være det der er løsningen...... desværre har jeg ikke passwordet til databasen, så når jeg har fremskaffet det, kan jeg gennemgå alle tabellerne......!
>> Thomas Jepsen: Jeg har brug for netop den løsning du har vedlagt, men kan ikke helt få det til at virke. Jeg har en front-end, hvor en admin skal kunne skifte rundt mellem backends. Det må være næsten det du har lavet. Kan du forklare din løsning lidt? Som sagt kan jeg ikke få det til at spille...
Jeg er ikke helt klar over hvilken løsning, du mener? Jesperthomsen kom med en VBA-løsning. Er det ham du mener? Eller refererer du til et helt andet spm?
Ja, det var ham jeg mente. Men jeg har lige fundet en anden løsning som er mere simpel og virker! Jeg vil uploade den senere, når jeg er tilbage på min pc.
Torben
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.