Avatar billede al_pacone Nybegynder
12. februar 2005 - 01:15 Der er 3 kommentarer og
1 løsning

User og password problem ved oprettelse af ODBC

Jeg bruger følgende kode til at oprette en ODBC.
Hvis jeg opretter uden UID og PWD fungerer det fint, men ikke når jeg gerne vil have de to attributter med.
Nogle gode forslag til hvad der går galt?

Private Const ODBC_CONFIG_SYS_DSN = 4
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
        (ByVal hwndParent As Long, ByVal fRequest As Long, _
        ByVal lpszDriver As String, ByVal lpszAttributes As String) _
        As Long
Private Sub Command1_Click()
      Dim intret As Long
      Dim strDriver As String
      Dim strAttributes As String
      strDriver = "SQL Server"
      strAttributes = "SERVER=MinServer" & Chr$(0)
      strAttributes = strAttributes & "DESCRIPTION=NySystemDsn" & Chr$(0)
      strAttributes = strAttributes & "DSN=Ny" & Chr$(0)
      strAttributes = strAttributes & "DATABASE=MinDB" & Chr$(0)
      strAttributes = strAttributes & "UID=User" & Chr(0)
      strAttributes = strAttributes & "PWD=Kodeord" & Chr(0)
      intret = SQLConfigDataSource(vbAPINull, ODBC_CONFIG_SYS_DSN, strDriver, strAttributes)
      If intret Then
          MsgBox "DSN Created"
      Else
          MsgBox "Create Failed"
      End If
End Sub
Avatar billede sjh Nybegynder
12. februar 2005 - 04:40 #1
er du sikker på at du kan skrive SERVER=...

hvis du ser her: http://www.vb-helper.com/howto_create_dsn_activex.html

så bliver det angivet som DNS= og DBQ=

sAttributes = "DSN=" & sDSN_Name & vbNullChar & _
            "DBQ=" & sDBFile & vbNullChar
Avatar billede al_pacone Nybegynder
12. februar 2005 - 11:49 #2
Det skal hedde SERVER. Det passer fint med den driver (SQL Server) jeg plejer at bruge, når jeg indtaster manuelt. Når jeg opretter uden at have UID og PWD med, så går det fint med både driver database og alle de andre attributter. Det går først galt når UD og PWD skal med.

Jeg kan ikke helt gennmskue hvilken driver der bliver brugt i det eksempel du henviser til, men der bliver brugt DBQ i stedet for server, og det kunne vel godt tyde på at det er en anden driver, med andre attributter.
Så vidt jeg kan finde af oplysninger, så bruger man DBQ når man henviser til en Access  database.
Avatar billede al_pacone Nybegynder
12. februar 2005 - 11:50 #3
UD = UID
Avatar billede al_pacone Nybegynder
15. marts 2005 - 20:42 #4
Ovenstående ODBC skal bruges af Access, til at kommunikere med en MSSQL DB.
Når man i Access opretter link til tabellerne i SQL DB, så angiver man bruger og password der, som så bliver brugt når man åbner Access.

Man skal altså ikke angive bruger og password, når man opretter ODBCén via VBA.

Når man manuelt opretter en ODBC via Administrative Tools \ Data sources (ODBC), så angiver man bruger og password, som bliver brugt til at teste forbindelsen. Og de bliver altså ikke gemt til fremtidig brug. Det er kun i Access at bruger og password bliver gemt.

Det er altså nok med følgende.

Private Const ODBC_CONFIG_SYS_DSN = 4
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" _
        (ByVal hwndParent As Long, ByVal fRequest As Long, _
        ByVal lpszDriver As String, ByVal lpszAttributes As String) _
        As Long
Private Sub Command1_Click()
      Dim intret As Long
      Dim strDriver As String
      Dim strAttributes As String
      strDriver = "SQL Server"
      strAttributes = "SERVER=MinServer" & Chr$(0)
      strAttributes = strAttributes & "DESCRIPTION=NySystemDsn" & Chr$(0)
      strAttributes = strAttributes & "DSN=Ny" & Chr$(0)
      strAttributes = strAttributes & "DATABASE=MinDB" & Chr$(0)
      intret = SQLConfigDataSource(vbAPINull, ODBC_CONFIG_SYS_DSN, strDriver, strAttributes)
      If intret Then
          MsgBox "DSN Created"
      Else
          MsgBox "Create Failed"
      End If
End Sub
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
Kurser inden for grundlæggende programmering

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