• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Connectie met sql-server/tabel vanuit vba

Status
Niet open voor verdere reacties.

linkav

Gebruiker
Lid geworden
13 jun 2007
Berichten
465
Hallo,

Ik ben op zoek naar een stukje code dat:
1) Connectie maak met de sql-database "DBFinance"
2) Een recordset samenstelt uit de tabel tblMailRules (Set rs= db.openrecordset ("Select * from tblMailRules order by MRuleId", dbopendynaset) ???)
3) De recordset doorloopt (While not rs.eof + rs.movenext ???)
4) In ieder gelezen record de velden LastCheck_Date aanpast naar huidige datum en LastCheck_Time aanpast naar huidige tijd (rs.edit + rs.update ???)

Kan/wil iemand mij verder helpen?
 
Volgende code gebruik ik voor het benaderen van een sql database.
Deze database moet dan wel toegevoegd zijn aan de ODBC-gegevensbronnen.

Code:
Public dbFileName As String
Public strTabelName As String
Public rs As Recordset
Public db As Database
Public SetupDataBlad As Worksheet
Public MainProgName As String




Sub Query(SQL$)
       dbFileName = "DBFinance"
        Call Open_dBase(dbFileName)
            bRecsFound = Select_records(SQL$)
            If Not bRecsFound Then
               Beep
               msg = "Niets gevonden dat voldoet........"
                      Style = vbOKOnly + vbExclamation
                      Title = "Geen records gevonden"
                      Antwoord = MsgBox(msg, Style, Title, Help, 64)
               Exit Sub
            End If
            Worksheets("uitvoerblad").Activate
            Worksheets("uitvoerblad").Cells(3, 1).CopyFromRecordset rs
      rs.Close
     Call Close_dBase(dbFileName)
End Sub


Function Select_records(CRIT_SQL$) As Boolean
  db.QueryTimeout = 200
  Set rs = db.OpenRecordset(CRIT_SQL$)
  If rs.EOF Then                'no recs gevonden
       Select_records = False
    Else                          'wel records gevonden
     Select_records = True      'De reccord set bestaat en heet rs
    rs.MoveLast
    rs.MoveFirst
    End If
End Function



Sub Open_dBase(dbFileName As String)
Set db = OpenDatabase(dbFileName, _
        dbDriverNoPrompt, True, _
        "ODBC;DATABASE=NAAMODBCDATABASE;UID=USER;WWD=;DSN=hw08;pwd=WACHTWOORD")
End Sub

Sub Close_dBase(dbFileName As String)
db.Close
End Sub


Hierbij kun je sub Query aanroepen vanuit een ander stuk programma waar je de SQL$ maakt hier kun je natuurlijk in jouw voorbeeld ook direct "Select * from tblMailRules order by MRuleId" plaatsen.
 
Goede morgen Hans

Ik heb je code uitgetest en het werkt!

Bedankt!

Gr,
Ariane
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan