Sentencias sql

Ya estoy por el tema de bases de datos, tengo entendido que se pueden realizar búsquedas personalizadas usando sentencias de SQL en Visual Basic 6, mi pregunta es donde o como las aplico y donde me muestra el resultado de la búsqueda es decir, si las tengo que poner en algún control, botón o que se yo, por favor si me pueden dar un ejemplo practico (Imágenes y ejercicios
Respuesta
1
Si usas access:
Esto va en un modulo vas:
Global DB as database
public sub main()
set DB=opendatabase("ruta\basededatos.mdb",false,false)
end sub
esto va en el codigo de un boton, por ejemplo en el evento click:
private sub boton_click
dim Resultado as recordset
dim SQL as string
SQL=""
end sub
set resultado=DB.openrecordset(SQL)
Perdón, ahora si esta completo
Si usas access:
Esto va en un modulo vas:
Global DB as database
public sub main()
set DB=opendatabase("ruta\basededatos.mdb",false,false)
end sub
esto va en el codigo de un boton, por ejemplo en el evento click:
private sub boton_click
dim Resultado as recordset
dim SQL as string
SQL="Selest nombre fom empelado where id_empleado between 00001 and 00100"
set resultado=DB.openrecordset(SQL)
'verificas que la sentencia SQL si haya dado resultados
if Resultado.eof then
msgbox "No hay resultados"
exit sub
else
'aqui ya decides que hacer con el resultado
while not resultado.eof
msgbox resultado!nombre
resultado.movenext
wend
end if
end sub

10 respuestas más de otros expertos

Respuesta
1
Como te va, ¿cómo van las cosas por Ecuador?
Te recomiendo que te leas una página muy buena, donde se explica con lujo de detalles esto que estás necesitando realizar:
http://www.elguille.info/vb/bases/ADO/SQLServer2005_Visual_Basic_6.htm
Si seguís teniendo alguna consulta, no dudes en volver a preguntar,
Leandro
Respuesta
1
Lamento no poder ayudarte, no trabajo con VB6.
Respuesta
1
Las sentencias SQL en VB6 se utilizan generalmente en una sentencia SELECT para abrir un recordset con ciertas condiciones que filtran este recordset. Acá te coloco un ejemplo donde se abre el recordset "Rstaparatos" y se filtra solo para los aparatos cuyo campo "MARCA" es igual a "SONY"
FILTRO = "SELECT * FROM APARATOS WHERE MARCA ='SONY' ORDER BY NUMERO"
Set Rstaparatos = Dbtaller.OpenRecordset(FILTRO, dbOpenDynaset)
Ok, pero donde va esa codificación y en que objeto me aparece el resultado eso es lo que no se, por favor me puede ayudar con eso gracias
Esa parte del código lo utilizas cuando abres el recordset, el cual esta asociado a una base de datos, lo puedes hacer utilizando DAO o utilizando ADO. Una vez que tienes el recordset filtrado con solo los registros que quieres, pues simplemente presentas los registros como quieras, puede ser con un Do while que revise todo el recorset y allí presentas los campos que te interesen. Con esto queda respondida la pregunta sobre el uso de la sentencia SQL, yo estoy asumiendo que tienes ya conocimientos en manejo de bases de datos desde VB6 que es otra cosa.
Respuesta
1
Una búsqueda personalizada la realizas de esta manera:
Select * from Mitabla WHERE campo1="algo"
Donde el Algo es lo que tu envías la rutina de búsqueda.
Este tipo de sentencias devuelve un conjunto de registros como resultado por lo general, así qie lo devuelve en un recordSet si estas trabajando VB6 o en un dataTable o dataSet si lo estas realizando sobre .NET
Para ejemplos visita la página del guille: www.elguille.info hay incluso un curso de VB6 y de VB.NET
Respuesta
1
Esto es para SQL Server 6/7/2000/2005 en VB6 utilizando ADO
Dim BD As ADODB.Connection
Dim Registros As ADODB.Recordset
Set BD = New ADODB.Connection
BD.ConnectionString = "dsn=" & servidor & ";uid=" & usuario & ";database=" & base de datos & ";"
BD.Open
Set Registros = New ADODB.Recordset
Set Registros = BD.Execute("SELECT * FROM TABLA WHERE ALGO = " & Parametro)
if Not Registros.EOF Then 'Se encontraron registros
Registros.MoveFirst
Do While Not Registros.EOF
Text1.Text = Registros(0)
ListBox1.Add(Registros(1))
Registros.MoveNext
Loop
Registros.Close
Set Registros = Nothing
BD.Close
Set BD = Nothing
Else 'No se encontraron registros
BD.Close
Set BD = Nothing
End If
Bueno, esto lo puedes poner dentro de un Sub, donde le puedes pasar la Consulta (Sentencia SQL), o bien, lo pones dentro de un Sub, le pasas la Consulta y sacas el ciclo While y lo pones en cada Form que necesites, así te queda este Sub "genérico" para llamar a todas las consultas y los ciclos While los utilizas en los Form para llenar los controles que quieras.
Respuesta
1
En este enlace tienes un ejemplo: revisalo y suerte
http://www.recursosvisualbasic.com.ar/htm/utilidades-codigo-fuente/zip/programa-biblioteca-vb-6.zip
No dudes en volver a preguntar si es que no le entiendes
Suerte.
Respuesta
1
Bueno si te entiendo bien quieres enviar consultas sql a través de vb6 y ver el resultado en tu vb6, si es así lo puedes hacer de diferente formas por ejemplo utilizando el control adodc para enviar una consulta que recupere determinada info de la base de datos en este control podrás controlar desde la conexión a tu base de datos así como el tipo de consulta a usar si sera con un pricedimiento almacenado o sentencia sql finalmente el componente contendrá el resultado ahora para mostrarlo puedes utilizar un componente tipo grilla y enlazarlo al componente adodc en sus propiedades recordsorce y datasource, si es esto lo que buscas por favor enviame un correo a [email protected] para enviarte un ejemplo, también puedes utilizar funciones de conexión a base de datos y para recuperar la información. Más detalle en el mail
Respuesta
1
Te digo que ya he avanzado en las versiones de Visual Basic... si recuerdo bien tienes que crear la referencia de ADONdb... no te puedo decir mucho.. pero te dejo esta referencia http://www.elguille.info/vb/bases/ADO/abrirbaseSQL.htm
Respuesta
1
Para esto tienes que ver los manuales de bases de datos y visual basic que se encuentran en la siguiente liga>
http://www.abcdatos.com
Respuesta
-1
¿Qué quieres decir con búsquedas personalizadas? No soy adivino..
Conoces Visual Basic, los msflexgrid, manejo de dll en base de datos, etc..
Se que no es adivino pero yo tampoco soy "EXPERTO", por eso pregunto, gracias por ser tan cordial
Eso no quiere decir que no puedas preguntar con algo más de detalle, solo debes ocupar un poco más de tiempo para que te ayuden y no hacer perder el tiempo a los que realmente están interesados en ayudar..

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas