Un poquito de SQL :P

Peyru

pues eso , estoy haciendo una aplicacion en access para una carpinteria , y tengo un par de dudicas a ver si me las podeis solucionar, bien , aqui va la primera:

1.-
tengo una tabla de articulos y otra de ventas, cuando en ventas seleccione un articulo (que aparece en un combobox) se debe ejecutar un codigo SQL por el que rellene unos campos con unos datos. no tengo mucha idea de como funciona el sql en el access, pero he escrito esto :

Private Sub Cuadrocombinado10_Change()
Texto23.Text = "select largo from Artículos where codigo = '" & Cuadrocombinado10.Text & "'"
Texto26.Text = "select ancho from Artículos where codigo = '" & Cuadrocombinado10.Text & "'"
Texto28.Text = "select alto from Artículos where codigo = '" & Cuadrocombinado10.Text & "'"
End Sub

y no funciona :S da un error de : "no se puede hacer referencia a una propiedad o a un metodo para un control a menos que el control tenga el enfoque

2.-
Y la segunda duda , es puro sql :P , estoy intentando rellenar un campo con la suma de otros x campos que tienen en comun un codigo , pero me da error tb xD toy un poco perdido , muchas gracias

UPDATE albaranarticulos SET auxiliartotal = (select sum(importetotal) from albaranarticulos WHERE albaran =3) WHERE albaran=3;

Peyru

bueno acabo de solucionar el problema 1.- ...pero no del todo... con este codigo lo he solucionado , lo que pasa, que no me introduce lo que yo quiero...sino la consulta dentro del mismo campo...y no el valor de ella
Private Sub Cuadrocombinado10_Change()
Dim auxiliar As String
axiliar = Cuadrocombinado10.Text
Texto23.SetFocus
Texto23.Text = "select largo from Artículos where modelo like '" & axiliar & "'"
Texto26.SetFocus
Texto26.Text = "select ancho from Artículos where modelo like '" & axiliar & "'"
Texto28.SetFocus
Texto28.Text = "select alto from Artículos where modelo like '" & axiliar & "'"
End Sub

kas

Porque guardas las consultas en TextBox en vez de en variables de tipo string?

En el problema 2, porque tienes 2 wheres?

Peyru

en el problema 1 la verdad estoy un poco MUY perdido, en el 2 , tengo 2 where , porque es un SELECT anidado , de hay que haya tambien 2 selects

Soltrac

Un poco perdido? Yo diría que bastante.

'Se crean las instancias a los objetos conexión y recorset.
Set oConn = New Connection
Set oRst = New Recordset

'Abre la conexión asignando el tipo de modelo de datos.
oConn.Open("Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source='TUFICHERO.mdb'")

'Abre el recorset y lo rellena con los datos de la tabla.
oRst.Open "CONSULTA SELECT QUE ESTES UTILIZANDO", oConn, adOpenForwardOnly, adLockReadOnly

Ahora simplemente es acceder a oRst("columna") y listo.

Para moverse por el oRst, estudiar .movenext y demás métodos.

oRst.Close
oConn.Close
Set oRst = Nothing
Set oConn = Nothing

No te voy a resolver el problema, es bueno estudiar por uno mismo, simplemente te copio un ejemplo de conexión a BB.DD.

Si tienes más dudas, busca "Conexion ADO" en google o sigue preguntando, pero intenta hacerlo primero.

Usuarios habituales

  • Soltrac
  • Peyru
  • kas