Avatar billede nhoff Nybegynder
08. april 2004 - 19:18 Der er 6 kommentarer og
1 løsning

Access til SQL2000 - formular m. indtastning af brugernavn og pw

Jeg har en SQL server som backend og bruger access 2000 som frontend. Kan man lave en formular (frmLogin) hvor brugeren kan indtaste sit brugernavn og pw, så man dermed slipper for at få den prompt hvor der står "Det lykkedes ikke at oprette forbindelse"?

Jeg går ud fra at man skal oprette forbindelse til serveren i sin vba-kode til formularen? Jeg kender lidt til vba, men er bestemt ikke ekspert.

Hilsen
Nikolaj
Avatar billede trer Nybegynder
08. april 2004 - 19:53 #1
Hvis du benytter Windows Authentication i SQL Server vil brugeren aldrig skulle indtaste noget brugernavn password - Access vil læse det direkte fra den "logggede ind" bruger.

Hvis du vil bede om login skal du bruge SQL Server Authentication - men det er ikke anbefalelsesværdigt generelt.
08. april 2004 - 20:02 #2
Du kan godt lave en formular som, når brugeren klikker "Login" efter at have indtastet brugernavn og adgangskode, udføre denne kode:

    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    cn.ConnectionString = "driver={SQL Server};server=DinServer;uid=" & Me!UID & ";pwd=" & Me!Pwd & ";database=DinDatabase"
    cn.ConnectionTimeout = 30
    cn.Open
    If Err Then
        Msg "Der blev ikke oprettet forbindelse!@@Kontroller at du har tastet brugernavn og adgangskode korrekt ind.", vbCritical, "fejl i login!"
        cn.Close
        Set cn = Nothing
        Exit Sub
    End If
    DoEvents
08. april 2004 - 22:28 #3
Hvis du vil se et eks. på en formular, kan du gøre følgende:
-Kopier al teksten i næste indlæg
-Åbn Notepad og indsæt teksten
-Gem det og kald filen for Login.txt på harddisken
-Åbn en database og tryk Ctrl+G
-Skriv:
    Application.LoadFromText acform, "Login", "C:\StiTilFilen\Login.txt" <Tryk ENTER>

Herefter har du formularen i din databasen. Gå i design og derefter ind i VBA-koden for formularen og skift værdien i konstanterne 'Servernavn' og 'Databasenavn'.

Herefter skulle det gerne køre....

/Thomas
08. april 2004 - 22:28 #4
Version =19
VersionRequired =19
Checksum =794948991
Begin Form
    PopUp = NotDefault
    Modal = NotDefault
    RecordSelectors = NotDefault
    MaxButton = NotDefault
    MinButton = NotDefault
    ShortcutMenu = NotDefault
    AutoCenter = NotDefault
    NavigationButtons = NotDefault
    DividingLines = NotDefault
    AllowAdditions = NotDefault
    AllowDesignChanges = NotDefault
    DefaultView =0
    AllowUpdating =2
    ScrollBars =0
    RecordLocks =2
    TabularFamily =0
    BorderStyle =3
    PictureAlignment =2
    DatasheetGridlinesBehavior =3
    Cycle =1
    GridY =10
    Width =4875
    DatasheetFontHeight =10
    ItemSuffix =9
    Left =9510
    Top =4680
    Right =16365
    Bottom =10095
    DatasheetGridlinesColor =12632256
    OnUnload ="[Event Procedure]"
    RecSrcDt = Begin
        0x21b998989321e240
    End
    GUID = Begin
        0x4e94207cf02d01448d6dcd301bf33b6a
    End
    NameMap = Begin
        0x0acc0e55
    End
    Caption ="Login"
    DatasheetFontName ="Arial"
    OnLoad ="[Event Procedure]"
    Begin
        Begin Label
            BackStyle =0
            FontName ="Tahoma"
        End
        Begin Line
            Width =1701
        End
        Begin Image
            BackStyle =0
            OldBorderStyle =0
            PictureAlignment =2
            Width =1701
            Height =1701
        End
        Begin CommandButton
            Width =1701
            Height =283
            FontSize =8
            FontWeight =400
            ForeColor =-2147483630
            FontName ="Tahoma"
        End
        Begin TextBox
            FELineBreak = NotDefault
            SpecialEffect =2
            OldBorderStyle =0
            Width =1701
            LabelX =-1701
            FontName ="Tahoma"
        End
        Begin Section
            Height =3118
            BackColor =-2147483633
            Name ="Detaljesektion"
            GUID = Begin
                0x37b5c544c8ebd04aa91b9551e40d4e33
            End
            Begin
                Begin TextBox
                    OverlapFlags =85
                    Left =1907
                    Top =793
                    Width =2061
                    Name ="Uid"
                    GUID = Begin
                        0x708aaf5fd232554191e929d76c98bcce
                    End
                    Begin
                        Begin Label
                            OverlapFlags =85
                            Left =566
                            Top =798
                            Width =975
                            Height =240
                            Name ="Etiket1"
                            Caption ="Brugernavn:"
                            GUID = Begin
                                0xcbc5cc7ff7657147bda1cd16137e4825
                            End
                        End
                    End
                End
                Begin TextBox
                    OverlapFlags =85
                    Left =1907
                    Top =1190
                    Width =2061
                    TabIndex =1
                    Name ="Pwd"
                    InputMask ="Password"
                    OnGotFocus ="[Event Procedure]"
                    GUID = Begin
                        0xac4f7ec57bc0eb4889d851bb0f4f3713
                    End
                    Begin
                        Begin Label
                            OverlapFlags =85
                            Left =566
                            Top =1192
                            Width =1110
                            Height =240
                            Name ="Etiket3"
                            Caption ="Adgangskode:"
                            GUID = Begin
                                0xfc2a0f2f3f871549ae793853a47949ff
                            End
                        End
                    End
                End
                Begin TextBox
                    Enabled = NotDefault
                    Locked = NotDefault
                    TabStop = NotDefault
                    OverlapFlags =85
                    Left =1907
                    Top =1587
                    Width =2061
                    TabIndex =2
                    BackColor =12632256
                    Name ="Server"
                    GUID = Begin
                        0x44044989ea9c66419f25ebf769c60aa4
                    End
                    Begin
                        Begin Label
                            OverlapFlags =85
                            Left =566
                            Top =1587
                            Width =615
                            Height =240
                            Name ="Etiket5"
                            Caption ="Server:"
                            GUID = Begin
                                0x8d0d9439316e9946b15b2b853edb80cd
                            End
                        End
                    End
                End
                Begin CommandButton
                    OverlapFlags =85
                    AccessKey =76
                    Left =2557
                    Top =2745
                    Width =1026
                    Height =343
                    TabIndex =3
                    Name ="cmdLogin"
                    Caption ="&Login"
                    OnClick ="[Event Procedure]"
                    GUID = Begin
                        0x51a20a2b6034ea4fa005b3d7d9fccef2
                    End
                End
                Begin CommandButton
                    OverlapFlags =85
                    AccessKey =65
                    Left =3725
                    Top =2738
                    Width =1026
                    Height =343
                    TabIndex =4
                    Name ="cmdAfslut"
                    Caption ="&Afslut"
                    OnClick ="[Event Procedure]"
                    GUID = Begin
                        0x45ae38efed5c22498c329ea6ca508217
                    End
                End
                Begin Line
                    OverlapFlags =85
                    SpecialEffect =3
                    Left =120
                    Top =2610
                    Width =4631
                    Name ="Streg8"
                    GUID = Begin
                        0x5bb160e7def67645b044b73c61f0644b
                    End
                End
            End
        End
    End
End
CodeBehindForm
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Compare Database
Option Explicit

Dim Logon As Boolean
Const Servernavn = "MinServer"
Const Databasenavn = "MinDatabase"

Private Sub cmdAfslut_Click()
    On Error Resume Next
    DoCmd.Quit
End Sub

Private Sub cmdLogin_Click()
    On Error Resume Next
    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    cn.ConnectionString = "driver={SQL Server};server=" & Servernavn & ";uid=" & Me!UID & ";pwd=" & Me!Pwd & ";database=" & Databasenavn
    cn.ConnectionTimeout = 30
    cn.Open
    If Err Then
        msg "Der blev ikke oprettet forbindelse!@@Kontroller at du har tastet brugernavn og adgangskode korrekt ind.", vbCritical, "fejl i login!"
        cn.Close
        Set cn = Nothing
        Exit Sub
    End If
    DoEvents
    If Err = 0 Then
        SendKeys "%L" & Me!UID & "{TAB}" & Me!Pwd & "{ENTER}", False
    End If
    cn.Close
    Set cn = Nothing
    SaveSetting Databasenavn, "Login", "UID", Me!UID
    Logon = True
    DoCmd.Close acForm, Me.Name
End Sub

Private Sub Form_Load()
    Me!UID = GetSetting(Databasenavn, "Login", "UID", "sa")
    Me!Server = Servernavn
End Sub

Private Sub Form_Unload(Cancel As Integer)
    On Error Resume Next
    If Not Logon Then
        DoCmd.Quit
    End If
End Sub

Private Sub Pwd_GotFocus()
    Me!cmdLogin.Default = True
End Sub
Avatar billede trer Nybegynder
09. april 2004 - 00:07 #5
ah.. ser ud til at jeg misforstod - og under alle omstændigheder er jeg vist stået af her. Jeg trækker mig :-)
09. april 2004 - 00:13 #6
næ, jeg tror ikke, at du misforstod noget og dit svar var da også relevant nok. Jeg tror bare at nhoff benytter "Mixed Mode", siden han spørger. Og derfor har jeg lavet en formular, som viser hvordan han kan få brugeren til at indtaste navn og adgangskode i en formular i stedet for den indbyggede (med dertilhørende fejl og mangler).
Men lad dig ikke skræmme af de mange linier kode, som jeg har lagt. Det er blot en relativ simpel måde at overføre en hel formular via alm. tekst.
Avatar billede nhoff Nybegynder
09. april 2004 - 01:23 #7
Jeg skal lige love for at der er service på drengen!! Tusind tak for et meget fyldestgørende svar!!
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