Consultas SQL directo en Adodc

Soy Juan Diego, mira necesito una mano con lo siguiente:
Utilizo una variable string, una recordset y una connection para hacer esta consulta sql lo que hace es una búsqueda y compara haber sí el proveedor existe:
Private Sub txtcod_prov_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        sql = "Select * From Proveedor where Codigo_Proveedor=" + txtcod_prov + ""
        Set rst = cnn.Execute(sql)
        If Not rst.EOF Then
            MsgBox ("El Proveedor ya existe")
            Me.txtcod_prov.Text = ""
            Me.txtcod_prov.SetFocus
            Exit Sub
        Else
            Me.txtnom_prov.SetFocus
        End If
    End If
End Sub
Lo mismo en esta consulta sql para el código del artículo y que me muestre el nombre y el precio del artículo:
Private Sub txtcodart_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        sql = "Select * from Artículo where Codigo_Articulo=" + Me.txtcodart.Text + ""
        Set rst = cnn.Execute(sql)
        If Not rst.EOF Then
            Me.txtdes.Text = rst.Fields("Nombre_Articulo")
            Me.txtprec_comp = rst.Fields("Precio_Articulo")
            Me.txtcant.SetFocus
            Exit Sub
        Else
            MsgBox ("El Artículo No Existe")
            Me.txtcodart.Text = ""
            Exit Sub
        End If
    End If
End Sub
Y me pregunta es ¿se puede hacer estas consultas con el adodc?
Y si se puede ¿qué codificación usar?
Sí puedes responderme y solucionar esto te lo agradeceré.

1 Respuesta

Respuesta
1
Si
con ado y con dao
asi se abre en dao
Dim r as recordset
set r = currentdb.openrecordset("Select * from Tabla")
if r.recordcount>0 then
    r.movelast
     r.movefirst
    for a=1 to r.recordcount
        t=t+r!cantidad
        r.movenext
     next
end if
esto es para otra cosa
peo es par que veas la idea
por cierto lo que haces esta mal
el usuario puede salir del campo de otras maneras
Private Sub txtcod_prov_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
No solo con enter
Es mejor que pongas un combo para sereccionar
y en el evento notinlist lo puedes agregar a mano
Hola soy Juan Diego, mira necesito una mano con lo siguiente:
Utilizo una variable string, una recordset y una connection para hacer esta consulta sql lo que hace es una búsqueda y compara haber sí el proveedor existe:
Private Sub txtcod_prov_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        sql = "Select * From Proveedor where Codigo_Proveedor=" + txtcod_prov + ""
        Set rst = cnn.Execute(sql)
        If Not rst.EOF Then
            MsgBox ("El Proveedor ya existe")
            Me.txtcod_prov.Text = ""
            Me.txtcod_prov.SetFocus
            Exit Sub
        Else
            Me.txtnom_prov.SetFocus
        End If
    End If
End Sub
Lo mismo en esta consulta sql para el código del artículo y que me muestre el nombre y el precio del artículo:
Private Sub txtcodart_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then
        sql = "Select * from Artículo where Codigo_Articulo=" + Me.txtcodart.Text + ""
        Set rst = cnn.Execute(sql)
        If Not rst.EOF Then
            Me.txtdes.Text = rst.Fields("Nombre_Articulo")
            Me.txtprec_comp = rst.Fields("Precio_Articulo")
            Me.txtcant.SetFocus
            Exit Sub
        Else
            MsgBox ("El Artículo No Existe")
            Me.txtcodart.Text = ""
            Exit Sub
        End If
    End If
End Sub
Y me pregunta es ¿se puede hacer estas consultas con el adodc?
Y si se puede ¿qué codificación usar?
Sí puedes responderme y solucionar esto te lo agradeceré, saludos
Hola, veras yo intenté esto:
adodc1.commandtype= adCmdText
adodc1.recordsource= "Select * From Proveedor where Codigo_Proveedor=" + txtcod_prov + ""
if  not adodc1.recordset.eof then
MsgBox ("El Proveedor ya existe")
Me.txtcod_prov.Text = ""
Me.txtcod_prov.SetFocus
Exit Sub
Else
Me.txtnom_prov.SetFocus
End If
Y me salió un error diciendo que el objeto está cerrado y no sé solucionar eso para no usar la variable recordset, connection y string, sólo con el adodc si puedes solucionarlo te lo agradezco
Pero para buscar algo puedes usar
nombre=dlookup("Nombre","Proveedor","Codigo_Proveedor=" + txtcod_prov + "")
Hola, no te ofendas pero el Visual que uso es el Visual Basic 6.0, no sé de que visual me hablas y además las consultas SQL las quiero hacer directo del Adodc de la misma manera cómo te mostré pero con el Adodc, traté y no sé cómo hacerlo sí me ayudas te lo agradeceré.
si claro tienes razon eso que te envie es de vba de access
basicamente te puedo decir que trates de usar & en lugar de + que es el concatenador de string
y si =" + txtcod_prov + "" es una cadena debe ir
='" + txtcod_prov + "'"
Entre apostrofes
También no se si te falta
dim adodc1 as recordset
set adodc1 = currentbd.openrecordset(Select * From Proveedor where Codigo_Proveedor=" + txtcod_prov + "")
Claro esto es en access recuerda que este apartado es para access
hay otro con expertos en vb
Hola, gracias por la ayuda no pude hacerlo directo en el adodc pero viendo lo que me mostraste pude abreviar una línea hacer una manera distinta de usar SQL con Select y Update en vB, mira lo que te pida ahora para vos es una tontería lo siguiente:
En la tabla Artículo tengo dos campo: Nombre_Articulo y Cantidad_Stock y quiero que en un msgbox salga lo siguiente:
"hay 20 camisas" por ejemplo traté pero un campo no los dos intenté poner en el msgbox una variable integer para el cantidad de stock y una variable string para el nombre pero como te digo me sale una campo ni el hay aparece ¿qué tengo que hacer? La ayuda te la agradeceré
msgbox "Hay " & cantidad & " " & descripción
no se si eso es lo que preguntas?
Hola, mira primero te agradezco lo del msgbox porque funciono sólo una cosita que me sale así:
Hay200 Camisas Verde QL
Te digo porque lo probé y ¿cómo se puede separar el hay200?, sí me ayudas te lo agradeceré, saludos
Hijo no parecen cosas tuyas
Fíjate que yo te puse
msgbox "Hay " & cantidad & " " & descripción
Con un espacio después de hay
Hola, de nuevo gracias te tengo 2 preguntas por hacerte:
La 1ra, verás tengo dos tablas Compra y Detalle_Compra la cuestión es que en la tabla Compra está la fecha, el código y el importe total y en detalle_compra están los datos específicos de la compra y eliminó según el co´digo con delete de sql y elimino esa compra la pregunta es ¿tengo qué eliminar una compra sólo o todas en el caso de sí son muchas?
La 2da, verás para guardar la base de datos uso esta codificación:
        Adodc1.Recordset.AddNew
        Adodc1.Recordset("Codigo_Proveedor") = Val(txtcod_prov.Text)
        Adodc1.Recordset("Nombre_Proveedor") = txtnom_prov.Text
        Adodc1.Recordset("Direccion_Proveedor") = txtdir_prov.Text
        Adodc1.Recordset("Telefono_Proveedor") = Val(txttel_prov.Text)
        Adodc1.Recordset.Update
        MsgBox ("Proveedor Actualizado")
        Adodc1.Refresh
        Adodc1.Recordset.MoveLast 
Y mi pregunta es: ¿Se puede simplificar esta codificación? Traté de usar el Insert de sql y no puedo controlarlo y el update de sql pero no sé sí se puede usar para guardar.
Sí me ayudas te lo agradeceré, saludos
No entiendo
¿Tengo qué eliminar una compra sólo o todas en el caso de sí son muchas?
Si eliminas la cabeza para que se eliminen las lineas de detalle deben estar en relación, con integridad referencial y eliminación en cascada, no se si eso responde a la pregunta
2da
Usa un formulario, para eso son
Hola, disculpa que no te había respondido antes tuve algunos asuntos, la idea del botón guardar es abreviar las líneas que te mostré antes:
 Adodc1.Recordset.AddNew
 Adodc1.Recordset("Codigo_Proveedor") = Val(txtcod_prov.Text)
 Adodc1.Recordset("Nombre_Proveedor") = txtnom_prov.Text
 Adodc1.Recordset("Direccion_Proveedor") = txtdir_prov.Text
 Adodc1.Recordset("Telefono_Proveedor") = Val(txttel_prov.Text)
 Adodc1.Recordset.Update
 MsgBox ("Proveedor Actualizado")
 Adodc1.Refresh
 Adodc1.Recordset.MoveLast 
q me sugieres para abreviar y puedes mostrarme uno o algunos ejemplos? desde ya gracias de ante mano
Hola, mira que ya encontré la solución usando el insert into de sql en VB 6.0 y te hice caso con lo del combo muchas gracias y disculpa haberte molestado

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas