ewaldt at gdls.com
ewaldt at gdls.com
Tue May 15 09:05:02 CDT 2007
My thanks to Bruce Bruen; you pointed me in the right direction, and then
I found the info in Rick Dobson's "Programming Microsoft Access Version
2002".
I'm including below my VBA code in the hope that it can help someone else.
For those of you more knowledgeable than I (plenty of you on this list),
feel free to pick it apart. Remember that it does work, though!
For any who haven't been following: I needed a report to be based on a
parameter query, which was in turn based on a crosstab query that also
used the same parameter. I wanted to use ADO, and couldn't figure out how
to declare a parameter. Even though it was in the SQL, ADO wanted its own
declaration.
I hope the syntax below will help someone else.
Thomas F. Ewald
Stryker Mass Properties
General Dynamics Land Systems
Private Sub Report_Open(Cancel As Integer)
Dim intColCount As Integer
Dim intControlCount As Integer
Dim i As Integer
Dim strName As String
Dim intP As Integer
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
Dim prm As ADODB.Parameter
Set cmd = New ADODB.Command
With cmd
.ActiveConnection = CurrentProject.Connection
.CommandText = "PARAMETERS [Forms]![frmWeeklyData]![fraMonths] Long; "
& _
[Very long SQL statement here]
.CommandType = adCmdText
End With
Set prm = cmd.CreateParameter("[Forms]![frmWeeklyData]![fraMonths]",
adInteger, adParamInput)
cmd.Parameters.Append prm
intP = [Forms]![frmWeeklyData]![fraMonths]
prm.Value = intP
Set rst = cmd.Execute
intColCount = rst.Fields.Count
intControlCount = Me.Detail.Controls.Count
If intControlCount < intColCount Then
intColCount = intControlCount
End If
For i = 1 To intColCount
strName = rst.Fields(i - 1).Name
Me.Controls("Head" & i).Caption = strName
Me.Controls("Col" & i).ControlSource = strName
Next i
rst.Close
End Sub
This is an e-mail from General Dynamics Land Systems. It is for the intended recipient only and may contain confidential and privileged information. No one else may read, print, store, copy, forward or act in reliance on it or its attachments. If you are not the intended recipient, please return this message to the sender and delete the message and any attachments from your computer. Your cooperation is appreciated.