Hej alla glada! Om frågan ser ut såhär: Det beror lite på hur dynamisk din SQL-sträng är. Hej! Felet wrong number of arguments får jag i foumuläret på följande rad OK, OpenArgs finns inte i Access 2000 :-( Tack så mycket!!!!! :-)Promlem med urval i rapport
Jag har ett formulär med en sökfunktion. Det jag söker presenteras i ett underformulär. Så långt allt bra. Det jag tänkte nu är att jag även ska kunna öppna en rapport med de värden jag sökt upp.
När jag fyller underformuläret använder jag recordsource så här:
Me.qryDeliveries_subform.Form.RecordSource = strSql
Finns det något liknande sätt att öppna rapporten med??
har provat detta:
DoCmd.OpenReport stDocName, acPreview, strSql
men får då upp en tom rapport.
Har försökt på en massa olika sätt, men får inte till det...:-(
Vilket ska jag använda filterName eller WhereCondition och ska jag ha hela sql-strängen eller bara
WHERE ................ villkoret, eller är jag helt ute och cyklar?!?! Kanske det ska lösas på ngt annat sätt?
Vill helst använda mig av sql-strängen eftersom det jag söker innehåller massa joins osv...
Tack på förhand!
MariaSv: Promlem med urval i rapport
SELECT ... WHERE x=7 AND y=10
så ska du i urvalet ha:
x=7 AND y=10
/JohanSv: Promlem med urval i rapport
Om det bara är WHERE-uttrycket som varierar så är det mest logiska att ha SQL-strängen utan WHERE-uttryck som datakälla för rapporten och sedan öppna rapporten med WHERE-uttrycket som parameter:
<code>
DoCmd.OpenReport stDocName, acViewPreview, , "Id = 538"
</code>
Om du verkligen behöver använda SQL-strängen i sin helhet så kan du skicka med den som ett OpenArg och sedan fånga den i rapportens händelse Report_Open:
I formuläret:
<code>
DoCmd.OpenReport stDocName, acViewPreview, , , , strSql
</code>
I rapporten:
<code>
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Me.OpenArgs
End Sub
</code>Sv:Problem med urval i rapport
Det där med OpenArg såg ju bra ut....men jag får wrong number of arguments
Jag har Accsess 2000 kanske det inte funkar där???
min sql-sträng ser ut så här:
SELECT Delivery.ProductionNumber AS ProdNr, Delivery.CustomerOrderNumber AS KundOrderNr, Delivery.OrderNumber AS OrderNr, Delivery.Product AS Produkt, CImage.CImage AS CInfo, DeliveryType.DeliveryType AS LeveransTyp, Delivery.Id FROM DeliveryType INNER JOIN (CImage INNER JOIN Delivery ON CImage.Id=Delivery.CImage) ON DeliveryType.Id=Delivery.DeliveryType WHERE Delivery.ProductionNumber LIKE 'oeh054*' order by Delivery.Id desc
I sökfunktionen kan man byta och söka på en annan tabell, så det är inte alltid att det är just
Delivery.ProductionNumber som används.
Jag vet ju att sql:n funkar eftersom jag laddar mitt underformulär med exakt samma sql-sträng.
Tack igen...!! Sv:Problem med urval i rapport
DoCmd.OpenReport stDocName, acViewPreview, , , , strSqlSv: Problem med urval i rapport
Men om du öppnar rapporten med en knapp i formuläret så kan du ta datakällan direkt därifrån. Låt oss anta att ditt huvudformulär heter frmOrder:
<code>
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = Forms.frmOrder.qryDeliveries_subform.Form.RecordSource
End Sub
</code>
För att öppna rapporten behöver du då bara:
<code>
DoCmd.OpenReport stDocName, acViewPreview
</code>Sv:Problem med urval i rapport
Du är en klippa. Det funkar ju helt perfekt!!
/Maria