Avatar billede soloven Nybegynder
04. juli 2007 - 14:26 Der er 2 kommentarer og
3 løsninger

Hvordan kædes flerbruger basemiljø sammen (programmeringsmæssig).

Det er også nødvendigt at kontrollere om ”base_data.mdb” ligger i samme katalog som ” base.mdb” og er kædet sammen (rigtige sti/navn).

Jeg har sat sti / navn op - men mangler at kunne sammenkæde databaserne (base.mdb & base_data.mdb)  - og kontrollere at de 2 baser ikke er flyttet til et andet katalog siden sidst den var åbnet.

’ ******
Private Sub Form_Open(Cancel As Integer)

Dim intPos As Integer, Path, GetPath As String
   
    Path = CurrentDb.Name                                          ' Find hvor basen ligger
    intPos = Len(Path)                                                    ' Længde på stiNavnet & filNavnet
    Do Until Mid(Path, intPos, 1) = "\"                          ' Udskil sti & navn
        intPos = intPos - 1
    Loop
    filNavn = Mid(Path, intPos + 1, Len(Path))            ' filNavn lagt globalt
    stiNavn = Mid(Path, 1, intPos)                                ' stiNavn lagt globalt

    Application.SetOption "Default Database Directory", stiNavn  ' Ændre Default Directory til basens placering
   
    MsgBox "FilNavn: " & filNavn & "    - StiNavn: " & stiNavn, vbInformation, "Fil & Sti 1"

End Sub
’ ******

Har prøvet med ”sammenkædning af tabeller”

’ ******
    SendKeys "%K"          ' Åben Funktioner
    SendKeys "%F"          ' Åben Basefunktioner
    SendKeys "%T"          ' Åben til Styring af sammenkædning af tabeller
    SendKeys "%M"          ' Marker alle
    SendKeys "%A"          ' Aktivere søgning
'    SendKeys "~"                ' Enter
’ ******
men programmet kan ikke benytte dette under kørsel – kun i Designvisning.
Har prøvet at lave en menu uden held – virker kun manuelt eller i Designvisning.
Avatar billede jensen363 Forsker
04. juli 2007 - 14:36 #1
På følgende side :

http://www.makeiteasy.dk/eksempler/Downloads.htm

kan du downloade et eksempel på hvordan du automatisk checker og/eller sammenkæder frontend med backend
Avatar billede jensen363 Forsker
04. juli 2007 - 14:39 #2
Sorry dead link prøv denne i stedet :

http://www.makeiteasy.dk/eksempler/ReattachTables.zip
Avatar billede soloven Nybegynder
11. juli 2007 - 13:45 #3
Det er noget af en opvisning programmet laver. Jeg har studeret det længe og fundet frem til at der er formeget "pop". Man når dårligt nok at se procentbaren.
Hvad er jeg nødt til at have med for at lave den simple udgave jeg bruger pt. access 2003. RefreshLink kan ikke stå alene og jeg bruger ADODB.xxxx istedet for DAO.Database.
Avatar billede soloven Nybegynder
18. juli 2007 - 11:49 #4
Hej Jensen363

Jeg måtte lede mange steder før der var noget der kunne bruges.
Dette er nok et minimum til formålet.

Herunder er hvad jeg kogte det ned til for at finde og linke FrontEnd sammen med BackEnd.

1>>>>>>>>>>
Opret en ”Macro” der hedder ”Autoexec” og anvend handlingen ”AfspilKode” indsæt ”CheckMyLinks ()” i funktionskoden.
1>>>>>>>>>>

Placer resten i et Modul.

2>>>>>>>>>>
Option Compare Database
Option Explicit

' Placering af BackEnd Data-filen i forhold til FrontEnd
Const BackEndFilNavn As String = "BackEnd\The_Missing_LINKs_Data.mdb"

Public Function CheckMyLinks()
    Dim rs As DAO.Recordset
    Dim check As Boolean

On Error Resume Next
    ' Teksten "TS" er ikke et af tbl-navnene og bevirker at der kontrolleres hver gang
    Set rs = CurrentDb.OpenRecordset("TS")
    check = IIf(Err.Number = 0, True, False)
   
    If Not check Then
        ' BackEnd findes vha. "RefreshLinks(GetCurrentPath() & BackEndFilNavn)" der
        ' bruger funktionerne "GetCurrentPath()" og "RefreshLinks"
        If Not RefreshLinks(GetCurrentPath() & BackEndFilNavn) = True Then
            MsgBox "Kunne ikke finde filen 'LinkBag.mdb'(BackEnd)." _
                  & vbNewLine & vbNewLine & "Filen skal ligge i kataloget 'BackEnd'." _
                  & vbNewLine & vbNewLine & "Kataloget 'BackEnd' skal ligge i sammen sted som 'FrontEnd'."
        End If
    End If
    rs.Close
    Set rs = Nothing
   
    ' Start Databasen
    DoCmd.OpenForm "frmTS_Links"
End Function


Function GetCurrentPath() As String
    Dim Pos As Integer, path As String
    ' Find placeringen på databasen(stien)
    path = CurrentDb.Name
    Pos = Len(path)
    Do Until Mid(path, Pos, 1) = "\"
        Pos = Pos - 1
    Loop
    GetCurrentPath = Left(path, Pos)
End Function


Function RefreshLinks(strFilename As String) As Boolean

    Dim db As DAO.Database
    Dim tdf As DAO.TableDef
    Dim intCount As Integer

    ' Opdater Links til BackEnd
On Error GoTo ErrorHandler
    Set db = CurrentDb
    For intCount = 0 To db.TableDefs.Count - 1
        Set tdf = db.TableDefs(intCount)
       

        If Len(tdf.Connect) > 0 Then
            tdf.Connect = ";DATABASE=" & strFilename
            Err.Number = 0
           
            On Error Resume Next
            tdf.RefreshLink
           
            If Err.Number <> 0 Then
                RefreshLinks = False
                Exit Function
            End If
        End If
    Next intCount

    RefreshLinks = True
    Exit Function
   
ErrorHandler:
    MsgBox "Error#:  " & Err.Number & vbCrLf & Err.Description
    RefreshLinks = False
End Function
2>>>>>>>>>>

Desværre føler jeg ikke at du kan tilkomme fuld valører for hjælpen.

Hilsen
Soloven
Avatar billede jensen363 Forsker
18. juli 2007 - 11:54 #5
Hvis det tilgodeser dit formål, er det vel ok ...

Takker for point
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