Om man INTE vill ha SQL-frågorna i koden i VB så ska man väl kunna kalla på färdiga frågor i Access. Det ska inte vara någa problem om du använder Jet 4. JAg har skrivit ett exempel som använder Northwind databasen som följer med Visaual Basic och Access:Exempel på SQL-fråga som ligger färdig i Access
Finns det någon som har några exempel på detta?
Vill även ha så att man kan skicka med variabler till WHERE-villkor.
mvh
RickardSv: Exempel på SQL-fråga som ligger färdig i Access
<code>
Dim con As ADODB.Connection
Dim cmd As ADODB.Command
Dim rs As ADODB.Recordset
Dim fldField As ADODB.Field
Set con = New ADODB.Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Persist Security Info=False;" & _
"Data Source=C:\Program\Microsoft Visual Studio\VB98\NWIND.MDB"
Set cmd = New ADODB.Command
cmd.CommandText = "[Employee Sales by Country]"
cmd.CommandType = adCmdTable
cmd.Parameters.Append cmd.CreateParameter("[Beginning Date]", adDate, adParamInput, , #1/1/1996#)
cmd.Parameters.Append cmd.CreateParameter("[Ending Date]", adDate, adParamInput, , #12/31/1998#)
Set cmd.ActiveConnection = con
Set rs = New ADODB.Recordset
rs.Open cmd
For Each fldField In rs.Fields
Debug.Print fldField.Name & vbTab;
Next
Do Until rs.EOF
Debug.Print
For Each fldField In rs.Fields
Debug.Print fldField.Value & vbTab;
Next
rs.MoveNext
Loop
rs.Close
con.Close
</code>
SQL Frågan ser ut så här:
<code>
PARAMETERS [Beginning Date] DateTime, [Ending Date] DateTime;
SELECT DISTINCTROW Employees.Country, Employees.LastName, Employees.FirstName, Orders.ShippedDate, Orders.OrderID, [Order Subtotals].Subtotal AS SaleAmount
FROM Employees INNER JOIN (Orders INNER JOIN [Order Subtotals] ON Orders.OrderID = [Order Subtotals].OrderID) ON Employees.EmployeeID = Orders.EmployeeID
WHERE Orders.ShippedDate Between [Beginning Date] And [Ending Date];
</code>