Un parámetro para una consulta
Hola, espero que este muy bien.
Hace un tiempo le pedí ayuda con respecto a las consultas con parámetros...
Bueno, en verdad me tiene loca... Tome un código y lo adecué a mi bd. Pero no se porque me muestra los mismos datos siempre y ademas no hace bien el cálculo.
La consulta con parámetro se trata de que al ingresar el número de días este calcule el pedido sugerido para esa cantidad de días ingresados y muestre el resultado en un datagrid.
El código me muestra la tabla, pero como ya le comenté con valores mal calculados y mostrando siempre el mismo resultado.
Le adjunto el código que tengo, lamento molestar, pero ya llevo tiempo en esto y no tengo mayor experiencia en esto y estoy muy desorientada.
Muchas gracias por todo
Dim Conn As New ADODB.Connection
Dim Cmd As New ADODB.Command
Dim Cmd1 As New ADODB.Command
Dim cmd2 As New ADODB.Command
Dim Rs As New ADODB.Recordset
Private Sub Form_Load()
Dim strConn As String
'Change the DSN to match your settings.
strConn = "DSN=dsnAccess;"
With Conn
.CursorLocation = adUseClient
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\oficial.mdb" & _
";Persist Security Info=False"
.Open
End With
End Sub
Private Sub cmdNumeric_Click()
'Passes a Numeric parameter to a Microsoft Access 97 QueryDef
'that is based on the Products table. The parameter is on the
'ProductID field.
With Cmd
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
'ADO Numeric Datatypes are very particular
.Parameters.Append .CreateParameter("paramProdID", _
adSmallInt, _
adParamInput, _
2) ' Works without a Size
End With
'Cmd.Parameters("fecha") = 3
'OR
Cmd.Parameters(0) = 3
Rs.Open Cmd, , adOpenStatic, adLockReadOnly
With DataGrid1
Set .DataSource = Rs
.Columns(0).Width = 1700
.Columns(1).Width = 2500
.Columns(2).Width = 1700
End With
'Debug.Print Rs(0), Rs(1), Rs(2)
'Rs.Close
End Sub
Private Sub cmdText_Click()
'Passes a Text parameter to a Microsoft Access 97 QueryDef that
'is based on the Customers table. The parameter is on the
'CustomerID field.
With Cmd1
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
'Can use either adVarChar or adChar dataType
.Parameters.Append .CreateParameter("paramCustID", _
adVarChar, _
adParamInput, _
5) 'needs Size to work
End With
Cmd1.Parameters("paramCustID") = "COMMI"
Rs.Open Cmd1, , adOpenStatic, adLockReadOnly
Debug.Print Rs(0), Rs(1), Rs(2)
Rs.Close
End Sub
Private Sub cmdParameters_Click()
'The purpose of this procedure is to determine the
'properties of a parameter.
'
With cmd2
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
End With
cmd2.Parameters.Refresh
'Debug.Print "The parameter properties for ventam are: " _
'& vbCrLf _
'& "Name: " & cmd2.Parameters(0).Name & vbCrLf _
'& "Type: " & cmd2.Parameters(0).Type & vbCrLf _
'& "Direction: " & cmd2.Parameters(0).Direction & vbCrLf _
'& "Size: " & cmd2.Parameters(0).Size
'Debug.Print "-------------"
With cmd2
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
End With
cmd2.Parameters.Refresh
'Debug.Print "The parameter properties for calculado are: " _
'& vbCrLf _
'& "Name: " & cmd2.Parameters(0).Name & vbCrLf _
'& "Type: " & cmd2.Parameters(0).Type & vbCrLf _
'& "Direction: " & cmd2.Parameters(0).Direction & vbCrLf _
'& "Size: " & cmd2.Parameters(0).Size
End Sub
Hace un tiempo le pedí ayuda con respecto a las consultas con parámetros...
Bueno, en verdad me tiene loca... Tome un código y lo adecué a mi bd. Pero no se porque me muestra los mismos datos siempre y ademas no hace bien el cálculo.
La consulta con parámetro se trata de que al ingresar el número de días este calcule el pedido sugerido para esa cantidad de días ingresados y muestre el resultado en un datagrid.
El código me muestra la tabla, pero como ya le comenté con valores mal calculados y mostrando siempre el mismo resultado.
Le adjunto el código que tengo, lamento molestar, pero ya llevo tiempo en esto y no tengo mayor experiencia en esto y estoy muy desorientada.
Muchas gracias por todo
Dim Conn As New ADODB.Connection
Dim Cmd As New ADODB.Command
Dim Cmd1 As New ADODB.Command
Dim cmd2 As New ADODB.Command
Dim Rs As New ADODB.Recordset
Private Sub Form_Load()
Dim strConn As String
'Change the DSN to match your settings.
strConn = "DSN=dsnAccess;"
With Conn
.CursorLocation = adUseClient
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\oficial.mdb" & _
";Persist Security Info=False"
.Open
End With
End Sub
Private Sub cmdNumeric_Click()
'Passes a Numeric parameter to a Microsoft Access 97 QueryDef
'that is based on the Products table. The parameter is on the
'ProductID field.
With Cmd
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
'ADO Numeric Datatypes are very particular
.Parameters.Append .CreateParameter("paramProdID", _
adSmallInt, _
adParamInput, _
2) ' Works without a Size
End With
'Cmd.Parameters("fecha") = 3
'OR
Cmd.Parameters(0) = 3
Rs.Open Cmd, , adOpenStatic, adLockReadOnly
With DataGrid1
Set .DataSource = Rs
.Columns(0).Width = 1700
.Columns(1).Width = 2500
.Columns(2).Width = 1700
End With
'Debug.Print Rs(0), Rs(1), Rs(2)
'Rs.Close
End Sub
Private Sub cmdText_Click()
'Passes a Text parameter to a Microsoft Access 97 QueryDef that
'is based on the Customers table. The parameter is on the
'CustomerID field.
With Cmd1
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
'Can use either adVarChar or adChar dataType
.Parameters.Append .CreateParameter("paramCustID", _
adVarChar, _
adParamInput, _
5) 'needs Size to work
End With
Cmd1.Parameters("paramCustID") = "COMMI"
Rs.Open Cmd1, , adOpenStatic, adLockReadOnly
Debug.Print Rs(0), Rs(1), Rs(2)
Rs.Close
End Sub
Private Sub cmdParameters_Click()
'The purpose of this procedure is to determine the
'properties of a parameter.
'
With cmd2
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
End With
cmd2.Parameters.Refresh
'Debug.Print "The parameter properties for ventam are: " _
'& vbCrLf _
'& "Name: " & cmd2.Parameters(0).Name & vbCrLf _
'& "Type: " & cmd2.Parameters(0).Type & vbCrLf _
'& "Direction: " & cmd2.Parameters(0).Direction & vbCrLf _
'& "Size: " & cmd2.Parameters(0).Size
'Debug.Print "-------------"
With cmd2
Set .ActiveConnection = Conn
.CommandText = "calculado"
.CommandType = adCmdStoredProc
End With
cmd2.Parameters.Refresh
'Debug.Print "The parameter properties for calculado are: " _
'& vbCrLf _
'& "Name: " & cmd2.Parameters(0).Name & vbCrLf _
'& "Type: " & cmd2.Parameters(0).Type & vbCrLf _
'& "Direction: " & cmd2.Parameters(0).Direction & vbCrLf _
'& "Size: " & cmd2.Parameters(0).Size
End Sub
1 Respuesta
Respuesta de denciso
1