Variabele in SQL zetten

  • Onderwerp starter Onderwerp starter SQLL
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

SQLL

Gebruiker
Lid geworden
1 nov 2011
Berichten
19
Hallo,

Ik wil een SQL maken met een variabele erin.
Het gaat om productgroepen

Voorbeeld:
Select *
from producten
where productgroep = ..en hier moet iets komen te staan waardoor ik het nummer van de productgroep moet invullen.

Het idee is dat deze query in een Excel gezet wordt zodat gebruikers zelf het overzicht per productgroep kunnen maken.

Alvast bedankt.
 
Ik begrijp het probleem niet helemaal? je kunt de query opbouwen met een variabele erin door gewoon text aan elkaar te plakken, bijvoorbeeld in een cel en dan de sql naar de cel laten verwijzen voor de query. Via VBA kan het nog eenvoudiger.

Waar loop je precies vast? hoe roep je momenteel de query aan?
 
Als ik als voorbeeld deze query maak

Select *
from producten
where productgroep =?

Dan krijg ik de volgende melding

Parameter IN of UIT ontbreekt bij index.: 1
 
Het is de bedoeling dat als de query gedraaid wordt, er een schermpje tevoorschijn komt waar je de waarde (bijvoorbeeld het getal 1050 als productcode) invult.
Ik heb dus geen idee hoe ik dit moet maken in SQL. Het vraagteken gebruik ik in dit voorbeeld om aan te geven dat daar iets variabel moet worden ingevuld alleen weet ik niet hoe.
 
Je kunt dat bereiken door een form te maken die je aanroept. OP dat form zet je een textbox.

vervolgens maak je een query:

querystring = "Select * from producten where productgroep = " & textbox1.text

vervolgens parse je dat door naar de tabel. Het oproepen van het form kun je doen doormiddel van een knop, shortcut, dubbelclicken op een cel en dergelijke. Het is echter moeilijk uitleggen als je nog geen ervaring hebt met VBA. Heb je mischien een voorbeeldfile?
 
Hoi Wampier,

Het is gelukt.
Ik werk in SQL developer en heb de volgende query gemaakt:

Voorbeeld:
Select *
from producten
where productgroep = '&parm1'

Nu moet ik zelf een waarde invullen. Alleen Excel doet moeilijk als ik er een lijst van maakt waar op de achtergrond een query draait.
 
Ik begrijp niet helemaal wat je bedoeld met "een lijst maken terwijl een query draait". Als het echter met de response te maken heeft terwijl de update draaid kun je ook backgroundquery in excel uitschakelen. Excel haalt dan eerst alles binnen voordat de bewerking doorgaat.
 
declare @param
set @param = 1

select *
from producten
where productgroup = @param

GO
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan