Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

[access2000] Extraer un dato a una variable

Estas en el tema de [access2000] Extraer un dato a una variable en el foro de Visual Basic clásico en Foros del Web. HOla a todos. Quisiera saber si existe algun modo de extraer , utilizando una consulta SQL un dato a una variable directamente. Algo asi como... ...
  #1 (permalink)  
Antiguo 12/08/2008, 12:01
 
Fecha de Ingreso: agosto-2005
Mensajes: 2
Antigüedad: 18 años, 8 meses
Puntos: 0
[access2000] Extraer un dato a una variable

HOla a todos.

Quisiera saber si existe algun modo de extraer , utilizando una consulta SQL un dato a una variable directamente.

Algo asi como... "select num_pedido into $variable where nom_cli = 'pedro'

En otro caso, ¿ cómo podria hacerse con un recordset ?

utilizo access 2000
Un saludo.
  #2 (permalink)  
Antiguo 12/08/2008, 13:34
 
Fecha de Ingreso: mayo-2008
Mensajes: 35
Antigüedad: 16 años
Puntos: 0
Respuesta: [access2000] Extraer un dato a una variable

Pues mira, no se si entendi bien, pero creo podrias manejarlo algo asi:

Código PHP:

Dim CON 
As Variant
Dim SQL 
As String
Dim RS 
As Variant
Dim busca 
As String

Set CON 
CreateObject("ADODB.Connection")
CON.Open ("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" "C:\BasedeDatos.mdb")

busca Text1.Text  

SQL 
"SELECT * FROM Tabla_Pedidos WHERE Campo_Nombre  LIKE  '" busca "'"

Set RS CON.Execute(SQL)


Do While 
Not RS.EOF

txtDato1
.Text RS("Dato1")
txtDato2.Text RS("Dato2")
txtDato3.Text RS("Dato3")

RS.MoveNext

Loop 
Para este ejemplo necesitas tu base con los campos Campo_Nombre, Dato1, Dato2, Dato3, etc, y la busqueda te devolvera todos los registros con el nombre que introduzcas en el Text1.Text por lo que te recomendaria que usaras un id y no un nombre espero te sea de utilidad
  #3 (permalink)  
Antiguo 13/08/2008, 12:43
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: [access2000] Extraer un dato a una variable

Hola!

Hazlo con un recordset como te dice Asbraha, pero no declares las variables como Variant, decláralas con su tipo correspondiente para ganar en rendimiento y prevenir errores (usa Variant única y exclusivamente cuando no puedas declararlas con otro tipo):

Código:
Dim CON As New ADODB.Connection  ' Así, además, te ahorras tener que llamar a CreateObject
Dim RS As ADODB.Recordset
El recordset tiene la propiedad Fields, que es una colección de los campos que devuelve la consulta. En el ejemplo que ha puesto nuestro colega, RS.Fields(0) equivale a los datos del primer campo que devuelva la consulta. Si sabes los nombres de los campos, también puedes invocarlo con RS.Fields("<nombre del campo>").

Puedes obtener información sobre el campo con las propiedades del objeto Field, y las que más te pueden ayudar son (hay más, échales un ojo a ver qué encuentras interesante ):
- Name(para el nombre del campo, o el alias, si especificas uno en la SELECT)
- Value(para ver el valor del campo en la fila actual)
- Type(para ver el tipo de datos con el que se ha declarado esa columna

Si lo que quieres es llamar a los campos más rápidamente, RS!<nombrecampo> es lo mismo que RS.Fields("<nombrecampo>") o RS.Fields("<nombrecampo>").Value.Más aún, si vas a trabajar exclusivamente dentro de Access (no utilizas un programa en VB para acceder a los datos), puedes ahorrarte todas las declaraciones si usas estas dos líneas (en este caso se usa acceso por DAO, no ADO, como sugiere Asbraha):

Código:
Dim RS As Recordset

Set RS = CurrentDb.OpenRecordset("<instrucción SELECT>")
Y ya puedes utilizar el recordset como te indicamos arriba.
__________________
wile sona li mute e sona

Última edición por Txoco; 13/08/2008 a las 15:01
  #4 (permalink)  
Antiguo 13/08/2008, 13:47
 
Fecha de Ingreso: mayo-2008
Mensajes: 35
Antigüedad: 16 años
Puntos: 0
Respuesta: [access2000] Extraer un dato a una variable

Jejeje eso hasta a mi me alcanza a servir gracias Txoco. Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:34.