Autor
|
Tema: vb6 y sql server (Leído 1,983 veces)
|
elmaro
Desconectado
Mensajes: 301
Unas simples palabras...
|
que tal, despues de tanto tiempo, dije que volvia y volvi mi duda es la siguiente estoy haciendo una aplicacion en vb6 usando sql server y queiro listar las db, utilizo este codigo: rst.Open "SELECT name FROM master.dbo.sysdatabases", cnn, adOpenDynamic, adLockOptimistic With cbo_db .Clear For Each tField In rst.Fields .AddItem tField.Name Next .ListIndex = 0 End With rst.Close
cbo_db es un combo, y lo unico que me lista es la palabra "name", como hago para que me liste los datos de la columna name? me srian de gran ayuda ya que estoy en el trabajo ahora xd saludos y gracias
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
me parece que tendías que abrir la tabla "sysdatabase", y listar los registros que contiene. Option Explicit
Private Sub Form_Load() Dim BD As Connection Dim Tb As Recordset
Dim conexion As String Set BD = New Connection conexion = "Provider=SQLOLEDB.1;" & _ "Persist Security Info=False;" & _ "User ID= SA;" & _ "pwd=;" & _ "Initial Catalog= Master;" & _ "Data Source=Servidor"
On Local Error Resume Next BD.Open conexion If Err Then MsgBox Err.Number & vbCrLf & Err.Description Exit Sub End If On Local Error GoTo 0 Set Tb = New Recordset Tb.Open "SELECT Name FROM Sysdatabases", BD Combo1.Clear While Not Tb.EOF Combo1.AddItem Tb!Name Tb.movenext Wend Tb.Close BD.Close
set Tb = nothing set BD = nothing End Sub
|
|
« Última modificación: 20 Junio 2007, 19:42 pm por CeLaYa »
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
elmaro
Desconectado
Mensajes: 301
Unas simples palabras...
|
graciaspor el codigo, lo probe y me sigue dando el mismo resultado,... lo que quiero hacer es esto --------------------- | Numero| uno | dos | tre | cuatro | cinco | seis -------------------- Dim tField As ADODB.Field rst.Open "select pub_codcontrato from vsp_contrcue", cnn, adOpenDynamic, adLockOptimistic
combo1.Clear For Each tField In rst.Fields combo1.AddItem tField.Name Next combo1.ListIndex = 0
rst.Close
lo que me muestra con eso no son los "uno", "dos", "tres", etc me muestra el nombre del campo "pub_codcontrato" si alguien me dice como mostrar los datos y no el nombre del campo se lo agradeceria bye
|
|
|
En línea
|
|
|
|
elmaro
Desconectado
Mensajes: 301
Unas simples palabras...
|
listo!! ya lo descubri
gracias de todos modos
bye bye nos vemo en ela p`roxima
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
para el que no lo sepa es así... xD tField!Name
o
tfield.fields("Name") 'se puede agregar .value
|
|
|
En línea
|
|
|
|
elmaro
Desconectado
Mensajes: 301
Unas simples palabras...
|
bueno sigo... con respecto a la forma que yo use.. es la siguiente: While frm1.rst.EOF frm1.rst.MoveFirst txt_dimccodigo = frm1.rst(0) txt_dimcdescripcion = frm1.rst(1) txt_dimcpadre = frm1.rst(2) txt_dimccuenta = frm1.rst(3) txt_dimccontrato = frm1.rst(4) txt_dimcconcepto = frm1.rst(5) txt_dimcproceso = frm1.rst(6) frm1.rst.MoveNext Wend y con eso veo los datos pero solo de la primera fila osea... ------------------------- | Numero | Letra| uno | a | | dos | b | | tre | c | | cuatro | d | | cinco | e | | seis | f | ---------------------- con ese codigo recibiria solo el dato numero "uno" y el dato letra "a" la pregunta es... como veo las otras filas? si alguien sabe... que me pase la vos saludos bye #Edit: gracias Hans el Topo, como siempre respondiendo
|
|
« Última modificación: 21 Junio 2007, 20:14 pm por elmaro »
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
rst.movenext el movefirst nose para que lo pones puesto que te envia al primer registro todo el rato... los bucles de lectura de un recordset suelen ser así while not rst.eof 'código que quieras para ese registro
'avanzamos registro rst.movenext wend #Edit: gracias Hans el Topo, como siempre respondiendo respondo cuando tengo tiempo y me apetece xD la mayoría de estos temas estan resueltos ya y por eso no se suelen responder pero weno digamos que hoy hice una excepción xD
|
|
|
En línea
|
|
|
|
elmaro
Desconectado
Mensajes: 301
Unas simples palabras...
|
barbaro, vamos mejorando yo necesito avanzar en los registros, lo que ahora uso es esto: voy mejorando en este tema para adelantar : If Not frm1.rst.EOF Then txt_dimccodigo = frm1.rst(0) txt_dimcdescripcion = frm1.rst(1) txt_dimcpadre = frm1.rst(2) txt_dimccuenta = frm1.rst(3) txt_dimccontrato = frm1.rst(4) txt_dimcconcepto = frm1.rst(5) txt_dimcproceso = frm1.rst(6) frm1.rst.MoveNext End If y para retroceder: If Not frm1.rst.EOF Then frm1.rst.MovePrevious txt_dimccodigo = frm1.rst(0) txt_dimcdescripcion = frm1.rst(1) txt_dimcpadre = frm1.rst(2) txt_dimccuenta = frm1.rst(3) txt_dimccontrato = frm1.rst(4) txt_dimcconcepto = frm1.rst(5) txt_dimcproceso = frm1.rst(6) End If
el tema que para retroceder no funciona, osea... retrocede el registro pero no lo carga en los textbox hace rato largo programo en vb y estoy verdisimo con vb y sql, por eso pregunto cosas que yo se que no son dificiles gracias again Hans el Topo bye...
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
con el if solo recorres un registro... el while recorre todos... y el avance o retroceso va al final, ya que si retroces y no hay nada que leer intentas leer vacio... por algo tiene esa estructura el bucle 'hacia adelante 'vamos al primero rst.movefirst 'mientras existan registros while not rst.eof 'código que quieras para ese registro
'avanzamos registro rst.movenext wend 'hacia atrás 'vamos al último rst.movelast 'mientras existan registros while not rst.BOF 'código que quieras para ese registro
'avanzamos registro rst.MovePrevious wend BOF indica que la posición del registro actual está antes del primer registro de un objeto Recordset.
EOF indica que la posición del registro actual está después del último registro de un objeto Recordset.
copipasteo la ayuda... Métodos MoveFirst, MoveLast, MoveNext y MovePrevious
Pasa al primer, último, siguiente o anterior registro de un objeto Recordset especificado y lo convierte en el registro actual.
Sintaxis
recordset.{MoveFirst | MoveLast | MoveNext | MovePrevious}
Comentarios
Utilice el método MoveFirst para mover la posición del registro actual al primer registro del Recorset.
Utilice el método MoveLast para mover la posición del registro actual al último registro del Recorset. El objeto Recordset tiene que aceptar marcadores o movimiento hacia atrás; si no, la llamada al método generará un error.
Utilice el método MoveNext para mover la posición del registro actual un registro hacia delante (hacia el final del Recordset). Si el último registro es el registro actual y llama al método MoveNext, ADO establece el registro actual a la posición posterior al último registro del Recordset (EOF es True). El intento de avanzar cuando la propiedad EOF ya sea True genera un error.
Utilice el método MovePrevious para mover la posición del registro actual un registro hacia atrás (hacia el principio del recordset). El objeto Recordset tiene que aceptar marcadores o movimiento hacia atrás; si no, la llamada al método generará un error. Si el primer registro es el registro actual y llama al método MovePrevious, ADO establece el registro actual a la posición anterior al primer registro del recordset (BOF es True). El intento de retroceder cuando la propiedad BOF ya sea True genera un error. Si el objeto Recordset no acepta marcadores o movimiento hacia atrás, el método MovePrevious generará un error.
Si el recordset es de tipo Forward-only y quiere recorrerlo hacia adelante y hacia atrás, puede utilizar la propiedad CacheSize para crear una caché de registros que acepte el movimiento hacia atrás mediante el método Move. Como los registros de la caché están guardados en la memoria, tiene que evitar guardar en la caché más registros de los estrictamente necesarios. Puede invocar el método MoveFirst en un objeto Recordset de tipo Forward-only; si lo hace, el proveedor vuelve a ejecutar el comando que generó el objeto Recordset.
|
|
|
En línea
|
|
|
|
elmaro
Desconectado
Mensajes: 301
Unas simples palabras...
|
chabon!!!
muchas gracias por la data, por la ayuda
claro, con IF solo leo un registro, y eso era lo que queria, no queria leer todos, ya que tengo que mostrar uno solo, y que el usuario valla viendo uno a uno como el quiera
te agradezco muchisimo por tu tiempo y por la info que pusiste al final, me sirvio de mucho
hasta la proxima bye....
|
|
|
En línea
|
|
|
|
|
|