Avatar billede Morten Nybegynder
29. september 2003 - 22:24 Der er 8 kommentarer og
1 løsning

Formular data hentet fra Access

Hej

Jeg har en database i Access og en VBA formular hvori jeg vil putte data'erne fra Access - hvordan gør jeg det.

Jeg kan godt finde ud af at etablere forbindelsen - så det er bare SQL sætningen hvor jeg sætter formularfelterne lig med database-daterne...
Avatar billede bak Forsker
29. september 2003 - 22:43 #1
Hvad skal du have retur ?
Har du lavet en sql-sætning der kun henter een record ?
Avatar billede bak Forsker
29. september 2003 - 22:51 #2
et eksempel

Public Sub SQLQuery()

    Dim rsData As ADODB.Recordset
    Dim szConnect As String
    Dim szSQL As String
   
    ' Create the connection string.
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=C:\Files\Northwind.mdb;"
   
    ' Create the SQL Statement.
    szSQL = "SELECT CompanyName, ContactName " & _
            "FROM Customers " & _
            "WHERE CompanyName = 'Tommy Bak'"
   
    ' Create the Recorset object and run the query.
    Set rsData = New ADODB.Recordset
    rsData.Open szSQL, szConnect, adOpenForwardOnly, _
                adLockReadOnly, adCmdText

    ' Make sure we got records back
    If Not rsData.EOF Then
        text1 = rsData(0) 'rsData.Fields("CompanyName") 1. felt i datarecord
        text2 = rsData(2) 'rsData.Fields("ContactName") 3. felt i datarecord
        text3 = rsData(3) 'rsData.Fields("PhoneNumber") 4. felt i datarecord
        ' Close the recordset
        rsData.Close
    Else
        MsgBox "Error: No records returned.", vbCritical
    End If
   
    Set rsData = Nothing
   
End Sub
Avatar billede Morten Nybegynder
30. september 2003 - 00:40 #3
Det blev til:

    ' Lav connect-streng.
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & GetName("strPathDB") & GetName("strMainDB") & ";"
   
    ' lav SQL Statement.
    szSQL = "SELECT * " & _
            "FROM " & GetName("strDefaultsTable")

    ' Lav Recorset object og kør queryen.
    Set rsData = New ADODB.Recordset
    rsData.Open szSQL, szConnect, adOpenForwardOnly, _
                adLockOptimistic, adCmdText

      'Indsæt data i tabellen
      For Each ctrl In settings.Controls
        Do While Not rsData.EOF
            If ctrl.Name = rsData("settings_control") Then
              rsData.Fields("Værdi") = ctrl.Value
            End If
          rsData.MoveNext
        Loop
        rsData.MoveFirst
      Next ctrl
 
  '*** luk databasen igen ***
  rsData.Close
  Set rsData = Nothing

Hvis du har kommentar hører jeg gerne...
Avatar billede Morten Nybegynder
30. september 2003 - 00:42 #4
Hov det var den der gemte værdierne fra Userformen her kommer den som henter ind i userformen (Kommentar er stadig velkommen!!!)

    Dim rsData As ADODB.Recordset
    Dim szConnect As String
    Dim szSQL As String
    Dim tmpControl
   
    ' Lav connect-streng.
    szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
                "Data Source=" & GetName("strPathDB") & GetName("strMainDB") & ";"
   
    ' lav SQL Statement.
    szSQL = "SELECT * " & _
            "FROM " & GetName("strDefaultsTable")

    ' Lav Recorset object og kør queryen.
    Set rsData = New ADODB.Recordset
    rsData.Open szSQL, szConnect, adOpenForwardOnly, _
                adLockReadOnly, adCmdText




  Do While Not rsData.EOF
    If rsData("settings_control") <> "" Then
    tmpControl = rsData("settings_control")
      settings.Controls(tmpControl) = rsData.Fields("Værdi")
    End If
    rsData.MoveNext
Loop
 
  '*** luk databasen igen ***
  rsData.Close
  Set rsData = Nothing
 
OBS! jeg har oprettet en kolonne i min tabel som indeholder navnet på Control'ern i min Userform - måske en utraditionel måde men det fungerer...
Avatar billede Morten Nybegynder
30. september 2003 - 09:43 #5
Smid lige et svar Bak og gerne en kommentar til min kode...
Avatar billede bak Forsker
30. september 2003 - 10:16 #6
Hvad kan jeg sige cddk.....
Det er rigtig smart fundet på. En fin måde at styre controllerne på. :-)
Avatar billede Morten Nybegynder
30. september 2003 - 10:22 #7
Tak...

et lille PS.

Har du nogle web-adresser på sider hvor man kan blive haj til det der SQL - det er jo meget mere genialt at bruge ACCESS som Database - og det virker også meget hurtigere... og jeg tør ikke tænke på min Excel app. når kundebasen måske runder 10000 poster... så det vil jeg gerne lære i dybden...
Er bekendt med W3Shcools - men du kender måske andre?
Avatar billede bak Forsker
30. september 2003 - 10:29 #8
Nej, egentlig ikke.
Hvis jeg har brug for en SQL-sætning, plejer jeg først at lave en access-forespørgsel.
Så går jeg op i Vis - Vis SQL og kopier derfra.
Avatar billede Morten Nybegynder
30. september 2003 - 10:43 #9
Nå ja - smart - var jo også sådan jeg selv startede med VBA....

Tusind tak for hjælpen - er sikker på at jeg snart vender tilbage...

Og go´ dag
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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