• 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.

Meerdere select statements bij connction maken met SQL database

Status
Niet open voor verdere reacties.

Advanm

Gebruiker
Lid geworden
24 jun 2014
Berichten
25
Hoi,

Ik loop tegen het volgende probleem aan.

Als ik een nieuwe externe verbinding maak met een SQL database om een aantal cellen te vullen kan ik maar 1 slect query uitvoeren met de volgende code.

Code:
Private Sub Workbook_Open()

'ADO = activaX data objects
'Data source (SQL database) <--> OLEDB Provider <--> ADO Data Objects
'you need a reference to ADO library
 
Dim kSQL As String
Dim rs As ADODB.Recordset 'holds the data
Dim rs1 As ADODB.Recordset
Dim cn As ADODB.Connection 'declare connection
Dim cmdObj As ADODB.Command 'Declaee a command object

Sheets("blad1").Select
Selection.ClearContents

Set cn = New ADODB.Connection

cn.Open "Provider=SQLOLEDB.1; Persist Security Info=True;User ID=siteconfig;Initial Catalog=testconfig;Data Source=mediserver;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=AVM-O7010-W7;Use Encryption for Data=False;Tag with column collation when possible=False"
kSQL = "select klant from klanten"
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient 'who manages the cursor ADO ( AsUseClient ) or server
rs.Open kSQL, cn, adOpenForwardOnly, adLockReadOnly, adCmdText

If rs.EOF Then
MsgBox ("recordsset is empty. rs.EOF = " & rs.EOF)

Else
'MsgBox ("The number of rows returned from the select statement is : " & rs.RecordCount)
Range("A1").Select
For Each qf In rs.Fields
    Range("a1").Offset(0, coloffset).Value = qf.Name
    coloffset = coloffset + 1

Next qf
Range("a2").CopyFromRecordset rs 'data naar werkblad sturen
rs.Close 'recordset sluiten
Set rs = Nothing 'DESTROY THE recordset
End If
Sheets("blad1").Visible = False
End Sub

Hoe kan ik met deze methode meerdere select statements uitvoeren zodanig dat ik maar 1 keer deze verbinding hoef op te zetten?

Als ik extra variablen toevoeg krijg ik wel nieuwe data in de colom B behalve de tabelnaam, die springt dan naar colom C
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan