Combos y sql
Hola, tengo un problema... Tengo 2 DataCombos para hacer un ingreso de stock, en 1 elijo el producto, que lo busca en una base de datos a traves de sql, en el otro DataCombo, en el evento click, hago que busque la presentaci贸n del producto seleccionado anteriormente... les pongo el c贸digo que estoy utilizando, y que me tira error ya en la primera busqueda (que no est谩 mal hecha)...
Private Sub Form_Load()
Set rstdcproducto = New ADODB.Recordset
Set rstdcpresentacion = New ADODB.Recordset
With rstdcproducto
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
End With
With rstdcpresentacion
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
End With
f rstdcproducto.State = adStateOpen Then rstdcproducto.Close
rstdcproducto.Open \"SELECT pro_desc, pro_id FROM Productos GROUP by pro_desc\", cnn
With dcproducto
Set .RowSource = rstdcproducto
.ListField = \"pro_desc\"
.DataField = \"pro_desc\"
.BoundColumn = \"pro_id\"
Set .DataSource = rstdcproducto
End With
End Sub
-----------------------------------------------------------------------------
Private Sub dcpresentacion_Click(Area As Integer)
If rstdcpresentacion.State = adStateOpen Then rstdcpresentacion.Close
id=dcproducto.BoundText
rstdcpresentacion.Open \"SELECT pro_pres, pro_id FROM Productos WHERE pro_id=\" & id & \" GROUP by pro_desc\", cnn
With dcpresentacion
Set .RowSource = rstdcpresentacion
.ListField = \"pro_pres\"
.DataField = \"pro_pres\"
.BoundColumn = \"pro_id\"
Set .DataSource = rstdcpresentacion
End With
End Sub
la coneccion \"cnn\" la tengo hecha en el form MDI y esta todo dimensionado en un modulo...
No se porque no anda... asi como esta me tira el siguiente error... \"Ha intentado ejecutar una consulta que no incluye la expresi贸n especificada \\'pro_id\\' como parte de una funci贸n de agregado\"
a ver si me ayudan a ver porque no funciona... gracias ;)
Private Sub Form_Load()
Set rstdcproducto = New ADODB.Recordset
Set rstdcpresentacion = New ADODB.Recordset
With rstdcproducto
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
End With
With rstdcpresentacion
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
End With
f rstdcproducto.State = adStateOpen Then rstdcproducto.Close
rstdcproducto.Open \"SELECT pro_desc, pro_id FROM Productos GROUP by pro_desc\", cnn
With dcproducto
Set .RowSource = rstdcproducto
.ListField = \"pro_desc\"
.DataField = \"pro_desc\"
.BoundColumn = \"pro_id\"
Set .DataSource = rstdcproducto
End With
End Sub
-----------------------------------------------------------------------------
Private Sub dcpresentacion_Click(Area As Integer)
If rstdcpresentacion.State = adStateOpen Then rstdcpresentacion.Close
id=dcproducto.BoundText
rstdcpresentacion.Open \"SELECT pro_pres, pro_id FROM Productos WHERE pro_id=\" & id & \" GROUP by pro_desc\", cnn
With dcpresentacion
Set .RowSource = rstdcpresentacion
.ListField = \"pro_pres\"
.DataField = \"pro_pres\"
.BoundColumn = \"pro_id\"
Set .DataSource = rstdcpresentacion
End With
End Sub
la coneccion \"cnn\" la tengo hecha en el form MDI y esta todo dimensionado en un modulo...
No se porque no anda... asi como esta me tira el siguiente error... \"Ha intentado ejecutar una consulta que no incluye la expresi贸n especificada \\'pro_id\\' como parte de una funci贸n de agregado\"
a ver si me ayudan a ver porque no funciona... gracias ;)
el problema es que est谩s usando GROUP pero no agrupas con todos los campos que solicitas.
Ha spuesto esto:
rstdcpresentacion.Open \"SELECT pro_pres, pro_id FROM Productos WHERE pro_id=\" & id & \" GROUP by pro_desc\", cnn
y debiste poner:
rstdcpresentacion.Open \"SELECT pro_pres, pro_id FROM Productos WHERE pro_id=\" & id & \" GROUP by pro_desc, pro_id\", cnn
Saludos
Ha spuesto esto:
rstdcpresentacion.Open \"SELECT pro_pres, pro_id FROM Productos WHERE pro_id=\" & id & \" GROUP by pro_desc\", cnn
y debiste poner:
rstdcpresentacion.Open \"SELECT pro_pres, pro_id FROM Productos WHERE pro_id=\" & id & \" GROUP by pro_desc, pro_id\", cnn
Saludos
