Avatar billede janbangm Nybegynder
10. august 2005 - 09:41 Der er 16 kommentarer og
1 løsning

Sammenkæd tabel

Jeg er begyndt igen at lege med sammenkædning af tabeller af tabeller.  Vi har en stor databasen, som vi køre på 3 forskellige afdelinger. Vi har 3 datafiler og 3 programfiler, men det ville selvfølgelig være mere smart kun at bare en programfil at opdaterer.

Jeg har kikket på den hjælp jeg har fået herinde før og også andre ting og kommet frem til at det måske er noget i denne retning jeg skal bruge. Men det kan være helt forkert.

Public Sub linktabel()
Dim Filnavn As String
Dim path As String
Dim tnavn As String
Dim ct As New Collection
Dim tdf As TableDef
Dim db As Database
Set db = CurrentDb
db.TableDefs.Refresh
path = Extractpath(db.Name)
Stop

Filnavn = path & "data_yl.mdb"

For Each tdf In db.TableDefs
tnavn = db.TableDefs(1).Name
Stop
If Left(tdf.Connect, 10) = ";DATABASE=" Then
tdf.Connect = ";DATABASE =" & Filnavn

tdf.RefreshLink

End If

Next


End Sub

Jeg tror jeg på en eller anden måde skal have tabelnavn med. Som sagt kan det være jeg er helt galt på den
Avatar billede mugs Novice
10. august 2005 - 09:51 #1
Hvis du mener automatisk sammenkædning, så prøv at se på thomasjepsen's hjemmeside MakeITeasy.dk Der ligger vist et eksempel.
Avatar billede janbangm Nybegynder
10. august 2005 - 10:02 #2
Hej mugs. Det har jeg også set, men det er ikke helt det jeg vil. Jeg vil prøve om jeg fra min programfil kan vælge hvilken datafil der skal sammenkædes med. F.eks. 3 radioknapper og når man vælge en, bliver der sammenkædes en bestem datafil. Vores filer er så store, at vi ikke kan have det i en. Det tror vil blive for svær

Men når man automatisk sammenkæde, må man også kunne vælge en fil og derefter sammenkæde
Avatar billede Slettet bruger
10. august 2005 - 12:01 #3
Hvad med at skifte recordsource!~)

Me.RecordSource = "MinForespørgselPåDatafil1"
Avatar billede janbangm Nybegynder
10. august 2005 - 16:23 #4
Hej spg. Det er mange formularer der skal opdateres på en gang, så det vil være bedst at kunne sammenkæde alle tabeller til en anden datafil.
Avatar billede mugs Novice
10. august 2005 - 16:48 #5
Jeg har søgt lidt på min HD og har fundet denne. Jeg mener ikke nogensinde at have brugt den, men måske den kan give dig et spark i den rigtige retning. Husk en reference til DAO. Det må kunne lade sif gøre at erstatte strFileName med en variabel.


Private Function RefreshLinks(strFileName As String) As Boolean
' Refresh links to the supplied database. Return True if successful.
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
' Loop through all tables in the database.
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
' If the table has a connect string, it's a linked table.
If Len(tdf.Connect) > 0 Then
tdf.Connect = ";DATABASE=" & strFileName
Err = 0
On Error Resume Next
tdf.RefreshLink        ' Relink the table.
If Err <> 0 Then
RefreshLinks = False
Exit Function
End If
End If
Next tdf
RefreshLinks = True        ' Relinking complete.
End Function
Avatar billede janbangm Nybegynder
10. august 2005 - 21:54 #6
Hej Mugs. Kikker på det det imorgen. Jan
Avatar billede janbangm Nybegynder
11. august 2005 - 09:23 #7
Mugs det er måske tæt på og langt fra på en gang. Denne opdatere linkene til den fil der er sammenkædet. Det som jeg savner er, at man kunne sammenkæde med en anden fil. Har jeg 2 datafiler afdeling1.mdb og afdeling2.mdb, ville jeg gerne at kunne skifte mellem disse 2 filer.
Måske kan det ikke lade sig gøre
Avatar billede mugs Novice
11. august 2005 - 09:31 #8
Avatar billede janbangm Nybegynder
11. august 2005 - 10:47 #9
Mugs: Jeg tror jeg er meget tæt på med den funktion, men jeg syntes den mangler nogle fuktion f.eks. aht_apiGetOpenFileName. Er det mig der gør noget forkert.
Avatar billede mugs Novice
11. august 2005 - 11:45 #10
Jan - Det var blot noget jeg fandt ved en hurtig søgning der hjemme. Jeg har aldrig brugt den selv og havde ikke megen tid til at læse den. Nu er jeg på arbejde og har ikke Access på denne maskine, så jeg kan næsten ikke gøre mere før jeg er hjemme igen.
Avatar billede janbangm Nybegynder
11. august 2005 - 12:35 #11
Mugs. Det er helt iorden. Jeg er meget glad for din hjælp
Avatar billede mugs Novice
11. august 2005 - 13:31 #12
Jan - Jeg har læst koden igennem men ikke afprøvet den. Så vidt jeg kan se, kaldes GetOpenFileName kun hvis den indtastede nye backend ikke findes, for at brugeren har lejlighed til at vælge en anden backend.
Avatar billede janbangm Nybegynder
11. august 2005 - 15:42 #13
Ja det er rigtigt Mugs. Dem får jeg nok også brug for. Jeg tror godt jeg kan finde dem rundt om på nettet, men jeg kom til at tænke om der kunne være en letter måde (f.eks.) en referance jeg skal have med.
Jeg prøve lige selv at kikke på om den er nødvendige for mig
Avatar billede janbangm Nybegynder
11. august 2005 - 16:16 #14
Jeg er kommet med længere. Jeg har erstatet åben fil dialogboxen med en fast string. Nu skal jeg have det sådan at jeg kan vælge mellem datafilerne.
Mugs vil du lægge et svar. Jeg er meget glad for hjælpen.
Avatar billede mugs Novice
11. august 2005 - 16:21 #15
Fint det fungerer. Tak for point.
Avatar billede janbangm Nybegynder
11. august 2005 - 16:23 #16
Det gør det næsten, men det er andre problemer jeg nu. Hvis jeg ikke kan løse dem, laver jeg et spørsmål igen
Avatar billede janbangm Nybegynder
11. august 2005 - 16:24 #17
Tak for hjælpen
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester