Avatar billede m_hansen Novice
11. april 2006 - 14:23 Der er 4 kommentarer og
1 løsning

Access formular som frontend?

Er det muligt at bruge en Access formular som frontend på SQL Server (indtastning af data) - i givet fald hvordan?
Avatar billede ldanielsen Nybegynder
11. april 2006 - 14:23 #1
Det kan du sagtens

Du skal bruge "Sammenkædede tabeller"
Avatar billede terry Ekspert
11. april 2006 - 14:38 #2
or make an ADP (Access Data Project) which connects directly to your SQL database
Avatar billede weaponx Nybegynder
11. april 2006 - 14:42 #3
Som ldanielsen skriver brug sammenkædede tabeller. Du skal så vælge om du vil bruge en ODBC driver eller om du vil lave en DSN-less forbindelse med kode.

Jeg foretrækker DSN-less, da det ikke kræver installation af ODBC datakilde på clientmaskinerne.

Public Const cstrServer As String = "sql server"
Public Const cstrDatabase As String = "database"
Public Const cstrUsername As String = "brugernavn"
Public Const cstrPassword As String = "password"

Public Const DSN_NAME As String = "DSN navn"


' Opretter en maskin DSN på maskinen, så bruger kan tilslutte til SQL
Function RegisterDB() As Boolean
    Dim str As String

    On Error GoTo Err_RegisterDB
    str = str & "Server=" & cstrServer & vbCr
    str = str & "Description=SQL Server" & vbCr
    str = str & "Database=" & cstrDatabase & Chr(0)

    DBEngine.RegisterDatabase "Databasenavn", "SQL Server", True, str

    RegisterDB = True

Exit_RegisterDB:
    Exit Function

Err_RegisterDB:
    Dim strError As String
    Dim errLoop As Error

    ' Enumerate Errors collection and display properties of
    ' each Error object.
    For Each errLoop In Error
        With errLoop
            strError = _
                "Error #" & .Number & vbCr
            strError = strError & _
                "    " & .Description & vbCr
            strError = strError & _
                "    (Source: " & .Source & ")" & vbCr
            strError = strError & _
                "Press F1 to see topic " & .HelpContext & vbCr
            strError = strError & _
                "    in the file " & .HelpFile & "."
        End With
        MsgBox strError
    Next
    RegisterDB = False
    Resume Exit_RegisterDB
End Function
'

' Linker til tabeller på SQL Server </summary>
' <remarks></remarks>

Public Function DBConnection()
    Dim i As Integer

    On Error GoTo ErrHandler

    For i = 0 To DBEngine(0)(0).TableDefs.Count - 1
        If DBEngine(0)(0).TableDefs(i).Connect <> "" Then
            With DBEngine(0)(0).TableDefs(i)
                .Connect = "ODBC;DSN=DSNnavn;Server=" & cstrServer & ";" & "Database=" & cstrDatabase & ";UID=" & cstrUsername & ";PWD=" & cstrPassword & ";"
                .RefreshLink
            End With
        End If
    Next i

    Exit Function

ErrHandler:
    Err.Raise Err.Number, , "Kunne ikke tilslutte til database!"

End Function


Du kan så lave en start formular der er skjult, som på form_open connecter til SQL serveren og åbner den "rigtige" formular til frontend.

Eks.:
Private Sub Form_Open(Cancel As Integer)
    Call RegisterDB
    Call DBConnection
    Form_frmMain.Visible = True
    Me.SetFocus
    DoCmd.Close
End Sub
Avatar billede ldanielsen Nybegynder
12. april 2006 - 08:46 #4
Havde ikke set ADP, det ser rigtig smart ud ...
Avatar billede terry Ekspert
12. april 2006 - 09:11 #5
You can also create your tables/views etc. directly from Access when using ADP, and you can also use stored procedures. There are lots of advantages with ADP's but if your used to linked tables then there are thigs which are quite different and take a bit of getting used to.
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
Computerworld tilbyder specialiserede kurser i database-management

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