Hade en liten förhoppning om att jag skulle kunna skapa en stringvariabel och lägga in som criteria precis som man kan använda sig av t ex textboxar. Hej Johan, Förtydligande... Hej igen, Det är effektivare att skapa en statiskfråga dynamisk än att skapa en dynamiskfråga statisk. Lät bra i alla fall.Använda variabler i Criteria-fältet (Querys)
Trodde även jag lyckats pussla ihop en som skulle funka....
Men,
får det inte at funka :o(
Skall man lägga in variabler på något speciellt sätt?
Skall de se ut på något speciellt sätt?
Hur skall jag göra, trodde inte det skulle vara något problem.
//JohanSv: Använda variabler i Criteria-fältet (Querys)
Jag hjälper dig gärna med denna fråga.
Men för att göra det så vore det bra om du kunde ge lite mer utförligare information såsom ett exempel eller något liknande. Så att jag kan reproducera det du försöker göra här hos mig oxå.
Om du använder dig av queries så kan du ju även använda dig av SQL syntaxer etc.
mvh
NicholasSv: Använda variabler i Criteria-fältet (Querys)
Jag har en tabell med en kolumn som heter Departments, av någon anledning sparar jag olika avdelningsnummer i denna... :o)
I en query
(som i övrigt även sållar ut rader efter datum, finns även en datumkolumn, datumen tas från en textbox. detta funkar perfekt (>=[Forms]![frm_Start]![Report_From] And <=[Forms]![frm_Start]![Report_To])),
villl jag nu även sortera ut avdelningar.
Avdelningarna väljs från en multiselect-listbox, detta går även bra, har lyckats fått fram textsträngar som ser ut som tex: Like "99811" Or "99822" och "99811" OR "99822".
Har inte haft något problem med att formatera dessa strängar.
Jag har sparat strängarna i string-variabeln: stringIN.
frågan är nu igen: kan jag använda mig av denna variabeln direkt i "Criteria"-fältet (i design-view av query:n) har provat med =[stringIN], [stringIN] osv men har inte fått något att funka.
Har däremot fått upp ett fönster att fylla i värdet av stringIN-variabeln i, då query:n inte kännt igen variabeln, fyller jag i denna med tex 99811 så funkar det men jag har inte lyckats skriva in OR i detta fält, det går bara med ett värde åt gången.
Hur får jag det att fungera direkt med variabeln?
Och hur ska strängen se ut?Sv: Använda variabler i Criteria-fältet (Querys)
Hittade denna intressanta artikel vilken beskriver hur du kan skriva in flera parametrar:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;210530
//NicholasSv: Använda variabler i Criteria-fältet (Querys)
Men kanske skall formulera det så här. Antalet värden i din fråga kan variera (Dynamiskt).
Du kan skriva en fråga som löser det med funktioner. Men det kommer starkt påverka frågans prestanda negativt.
Det är då bättre att med kod skapa en statisk fråga. Du får dessutom mer möjligheter att kontrolera det.
Här kommer ett litet exempel:
<code>
Private Sub Kommandoknapp2_Click()
Dim strIN As String
Dim strSQL As String
Dim strWHERE As String
Dim vTemp As Variant
If IsDate(Me![Report_From]) Then
If IsDate(Me![Report_To]) Then
strWHERE = strWHERE & " AND [Ditt datum fält] Between #" & Me![Report_From] & "# And #" & Me![Report_To] & "#"
Else
strWHERE = strWHERE & " AND [Ditt datum fält] >= #" & Me![Report_From] & "#"
End If
ElseIf IsDate(Me![Report_To]) Then
strWHERE = strWHERE & " AND [Ditt datum fält] Between <= #" & Me![Report_To] & "#"
End If
For Each vTemp In Listruta0.ItemsSelected
strIN = strIN & ", " & Listruta0.ItemData(vTemp)
Next
If Len(strIN) Then
strWHERE = strWHERE & " AND [Ditt listbox fält] IN (" & Mid(strIN, "6") & ")"
End If
If Len(strWHERE) Then
strSQL = "SELECT * FROM [Din tabell] WHERE " & strWHERE
Else
strSQL = "SELECT * FROM [Din tabell]"
End If
Me.RecordSource = strSQL
End Sub
</code>