Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel 2010] (VBA) SQL Data connectie, parameters uit cell

Pagina: 1
Acties:

  • -Miura-
  • Registratie: Mei 2002
  • Laatst online: 20:29
Ik ben bezig in Excel om een worksheet op te zetten die een lijst van (artikel)nummers opzoekt in een database dmv Data connectie / SQL Query en daar een aantal velden opzoekt.

Aan de hand van de macro tool in Excel heb ik al het een en ander in elkaar geknipt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub Macro1()
'
' Macro1 Macro
'   
    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(Array( _
        "ODBC;DSN=Ridder 000;ServerName=192.168.16.12.1583;ServerDSN=RIDDER000;ArrayFetchOn=1;ArrayBufferSize=8;TransportHint=TCP;DecimalSymb" _
        ), Array("ol=,;ClientVersion=8.60.192.030;CodePageConvert=1252;AutoDoubleQuote=0")), Destination:=Range("$C$1")).QueryTable
        .CommandText = "SELECT ARTIKEL.OMSCHRIJVING" & Chr(13) & "" & Chr(10) & "FROM ARTIKEL ARTIKEL" & Chr(13) & "" & Chr(10) & "WHERE (ARTIKEL.EXTERN_VERKOOPNR='" & Range("A1").Value & "')"
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .PreserveColumnInfo = True
        .ListObject.DisplayName = "Table_Query_from_Ridder_000_1"
        .Refresh BackgroundQuery:=False
    End With
End Sub


Dit is een macro die voor één cell de juiste waarden opzoekt. Mijn probleem is echter om deze actie voor een "complete" kolom te runnen. Een duw in de goede richting zal mij waarschijnlijk al goed helpen

Als work-around kan ik in een sheet de complete DB-Tabel inlezen en dan door middel van een VLOOKUP de juiste waarden opzoeken. Probleem wat ik hier echter mee heb, is dat dit meer dan 65356 regels oplevert, waar excel 2003-gebruikers niet mee overweg kunnen.