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

consulta

Estas en el tema de consulta en el foro de Visual Basic clásico en Foros del Web. hola muchachos estoy haciendo una consulta a mi bd en myslq desde visula soy muy nobato en visual les muestro lo que tengo y les ...
  #1 (permalink)  
Antiguo 25/02/2008, 12:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo consulta

hola muchachos estoy haciendo una consulta a mi bd en myslq desde visula soy muy nobato en visual les muestro lo que tengo y les explico que quiero hacer para que me hagan el favor de ayudarme

Public BD As ADODB.Connection
Public RecSQL As ADODB.Recordset
Dim busca As String

Private Sub Command1_Click()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "SELECT * FROM pacientes WHERE numerodehistoria='" & busca & "'", BD, adOpenStatic, adLockOptimistic
If RecSQL.EOF Then
MsgBox "No coincide ningún registro, modifique lo ingresado para la busqueda", vbExclamation
Else
RecSQL.MoveFirst
Do Until RecSQL.EOF
List1.AddItem
End If
End Sub

Private Sub Command2_Click()
On Error GoTo Ver
Set BD = New ADODB.Connection
BD.ConnectionString = "Driver={MySQL ODBC 3.51 Driver};Server=localhost;Database=practica; User=root;Password=123456;Option=3"
BD.Open
MsgBox "Conexión establecida!!!", vbExclamation, "Conexión"
Exit Sub
Ver:
MsgBox "Nº de error: " & Err.Number & " | " & Err.Description, vbCritical, "Control de errores"
Err.Clear
End Sub

fiejnse quiero hacer esa consulta pero que la misma se muestre en los distintos campos asignados a nombre, apellido, cedula, etc.. me sale un error en el command1 diciendome q no esta completo, me pueden ayudar por favor
  #2 (permalink)  
Antiguo 25/02/2008, 12:27
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: consulta

Hola, solo una consulta:

El campo numerodehistoria, de qué tipo es, es de texto, es numérico...?
  #3 (permalink)  
Antiguo 25/02/2008, 13:22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

el campo char, pero ese no es el problema el problema que no tengo idea alguna como mostrar los resultados de la consulta en cada campo o text asignado para cada variable (nombre,apellido,cedula, etc..)
  #4 (permalink)  
Antiguo 25/02/2008, 15:02
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: consulta

Cita:
Iniciado por banrey Ver Mensaje
If RecSQL.EOF Then
MsgBox "No coincide ningún registro, modifique lo ingresado para la busqueda", vbExclamation
Else
RecSQL.MoveFirst
Do Until RecSQL.EOF
List1.AddItem
End If
¿Y qué debe añadir en "List1.AddItem" algún campo?
¿Y dónde termina el bucle "Do Until RecSQL.EOF", es decir donde está el Loop?
  #5 (permalink)  
Antiguo 26/02/2008, 08:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

ya lo resolvi muchas gracias por tu ayuda

ayudame una ves mas con algo por favor
quiero mostrar todos los datos que hay en una tabla estoy haciendolo asi pero me da un erro seguro tu sabes como hacerlo bien


Private Sub Command6_Click()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "SELECT * FROM pacientes "
If RecSQL.EOF Then
MsgBox "No coincide ningún registro, modifique lo ingresado para la busqueda", vbExclamation
Else
RecSQL.MoveFirst
Text7 = (RecSQL.Fields(1))

End If
End Sub

quiero mostrar todos los registros de la bd de esa tabla y mostrarlos en un text
  #6 (permalink)  
Antiguo 26/02/2008, 08:25
Avatar de vbx3m  
Fecha de Ingreso: febrero-2005
Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: consulta

Cita:
Private Sub Command6_Click()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "SELECT * FROM pacientes "
If RecSQL.EOF Then
MsgBox "No coincide ningún registro, modifique lo ingresado para la busqueda", vbExclamation
Else
RecSQL.MoveFirst
Text7 = (RecSQL.Fields(1))

End If
End Sub
Asi llenas los text con los campos de la tabla:

Código:
Set RecSQL = New ADODB.Recordset
RecSQL.Open "SELECT * FROM pacientes"
If RecSQL.EOF Then
   MsgBox "No coincide ningún registro, modifique lo ingresado para la busqueda", vbExclamation
Else
   RecSQL.MoveFirst
   Text1.Text= RecSQL!campo1
   Text2.Text= RecSQL!campo2
   Text3.Text= RecSQL!campo3
   Text4.Text= RecSQL!campo4
   ....
   .....   
 End If
End Sub
No te daba error al abrir el Recordset? ya que te falto esto:

Código:
RecSQL.Open "SELECT * FROM pacientes", BD, adOpenStatic, adLockOptimistic, adCmdText
__________________
ホルヘ・ラファエル・マルティネス・レオン
  #7 (permalink)  
Antiguo 26/02/2008, 09:09
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

si tienes toda la razon ya lo habia acomodado lo que quiero es evitar colocar esto

RecSQL.MoveFirst
Text2 = (RecSQL.Fields(1))
Text3 = (RecSQL.Fields(2))
Text4 = (RecSQL.Fields(3))
Text5 = (RecSQL.Fields(5))
Text6 = (RecSQL.Fields(6))

y hacer un for pero lo hago de esta forma y me sale solo el ultimo dato

for a=0 to 6
Text2 = (RecSQL.Fields(a))
next

y disculpame el abuso pero tambien quiero preguntarte como puedo hacer para q salgan todos los registros en un text de una vez ose asi:

lo estoy tratando de hacer asi pero solo me sale en primer nombre y los demas registros del mismo paciente no me salen:

Set RecSQL = New ADODB.Recordset
RecSQL.Open "SELECT * FROM pacientes ", BD, adOpenStatic, adLockOptimistic
If RecSQL.EOF Then
MsgBox "No coincide ningún registro, modifique lo ingresado para la busqueda", vbExclamation
Else
RecSQL.MoveFirst
Text7 = (RecSQL.Fields(1))


jose jose masculino 24
antonio andres masculino 22
andrea martinez femenino 24

entonces tengo que hacer dos cosa primero variar los text y segundo variar el campo como hago eso amigo
  #8 (permalink)  
Antiguo 26/02/2008, 10:00
Avatar de vbx3m  
Fecha de Ingreso: febrero-2005
Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: consulta

Cita:
y hacer un for pero lo hago de esta forma y me sale solo el ultimo dato

for a=0 to 6
Text2 = (RecSQL.Fields(a))
next
Te recorre pero siempre te va a mostrar el ultimo dato... Puedes crear una matriz de controles del Text y usas el for...

Código:
For i=0 to 6
  text1(i).text =  RecSQL.Fields(i)
next
Si quieres que se muestre todo en un solo Text:

Código:
For i=0 to 6
  text1.text = text1.text & chr(10) + chr(13) &  RecSQL.Fields(i)
next
__________________
ホルヘ・ラファエル・マルティネス・レオン
  #9 (permalink)  
Antiguo 26/02/2008, 12:02
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

saben estoy realizando el codigo asi:

For i = 1 To 6
Text(i).Text = RecSQL.Fields(i)
Next

me sale q la variable text no esta definida, ahora si le coloco text2 q es el nombre donde quiero q salga la info me sale el siguiente error tambien

For i = 1 To 6
Text2(i).Text = RecSQL.Fields(i)
Next

wrong number of argumento or invalid property assignment

alguna idea q me ayude por favor
  #10 (permalink)  
Antiguo 26/02/2008, 12:31
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Re: consulta

Text2.. ¿es un array de controles?

Si es así, cual es el índice del primer y último elemento?
Es decir, la propiedad Index de ellos.

Última edición por Avellaneda; 26/02/2008 a las 12:50
  #11 (permalink)  
Antiguo 26/02/2008, 13:21
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

ya lo acomode gracias por la contestar

pero ayudame con otra cosita ahora:

resolvi todo con un list1 alli se mustran los resultados de la consulta

pero quiero sacar los resultados de forma ascendente y descendente lo hago asi :

Private Sub Command4_Click()
Set RecSQL = New ADODB.Recordset
RecSQL.Open "SELECT nombre,apellido,cedula,edad,sexo From pacientes group by nombre asc", BD, adOpenStatic, adLockOptimistic
If RecSQL.EOF Then
MsgBox "No hay ningún registro en la base de datos", vbExclamation
Else
RecSQL.MoveFirst
Do Until RecSQL.EOF
campo2 = ""
campo2 = campo2 & " " & RecSQL.Fields(0) & " " & RecSQL.Fields(1) & " " & RecSQL.Fields(2) & " " & RecSQL.Fields(3) & " " & RecSQL.Fields(4)
List1.AddItem campo2
RecSQL.MoveNext
Loop
End If
End Sub

trabaja bien pero quiero que al hacer click en este boton q llame ascendete me limpie los la pantalla para poder mostrarme los datos solamente por que el problema que tengo es que me muestra los resultados debajo de otros que anteriormente consulto
  #12 (permalink)  
Antiguo 26/02/2008, 13:41
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

ya lo resolvi de nuevo

gracias por la ayuda
  #13 (permalink)  
Antiguo 26/02/2008, 14:38
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

muchachos vuelvo con otra pregunta como hago un insert lo estoy haciendo asi pero me da un error en la sintasis

Private Sub Command7_Click()
Set RecSQL = New ADODB.Recordset
SQL_INSERT = " INSERT INTO pacientes (nombre,apellido,cedula,numerodehistoria,edad,sexo ) VALUES (" & Text2 & ",'" & Text3 & ",'" & Text4 & ",'" & Text1 & ",'" & Text5 & ",'" & Text6 & ",');"
BD.Execute SQL_INSERT
MsgBox "LOS DATOS FUERON INSERTADOS", vbExclamation
End Sub

ahora si no tengo idea de como hacerlo
  #14 (permalink)  
Antiguo 27/02/2008, 08:57
Avatar de vbx3m  
Fecha de Ingreso: febrero-2005
Ubicación: Venezuela
Mensajes: 524
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: consulta

Cita:
muchachos vuelvo con otra pregunta como hago un insert lo estoy haciendo asi pero me da un error en la sintasis

Private Sub Command7_Click()
Set RecSQL = New ADODB.Recordset
SQL_INSERT = " INSERT INTO pacientes (nombre,apellido,cedula,numerodehistoria,edad,sexo ) VALUES (" & Text2 & ",'" & Text3 & ",'" & Text4 & ",'" & Text1 & ",'" & Text5 & ",'" & Text6 & ",');"
BD.Execute SQL_INSERT
MsgBox "LOS DATOS FUERON INSERTADOS", vbExclamation
End Sub

ahora si no tengo idea de como hacerlo
A primera vista tienes una coma de mas y te faltan cerrar algunas comillas simples, y la actualizacion de la BD con BD.Update...
__________________
ホルヘ・ラファエル・マルティネス・レオン
  #15 (permalink)  
Antiguo 27/02/2008, 09:22
 
Fecha de Ingreso: septiembre-2007
Mensajes: 318
Antigüedad: 16 años, 7 meses
Puntos: 1
De acuerdo Re: consulta

ya lo volvi a resolver muchas gracias denuevo
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 22:25.