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

ayudar con visual basic 6.0

Estas en el tema de ayudar con visual basic 6.0 en el foro de Visual Basic clásico en Foros del Web. amigos tengo un problema estoy creando un formulario con una base de datos en access los datos del formulario se guardan en la base de ...
  #1 (permalink)  
Antiguo 10/06/2009, 14:02
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
ayudar con visual basic 6.0

amigos tengo un problema estoy creando un formulario con una base de datos en access los datos del formulario se guardan en la base de datos perfectamente pero quisiera saber como puedo hacer para que esos datos se puedan visualizar en un listbox

si pueden ayudarme se los agradeceria
  #2 (permalink)  
Antiguo 10/06/2009, 17:52
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Ahi va!, a ver si te sirve compañero.
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
Dim Ruta As String
Dim Tabla As String
Ruta = App.Path & "\" & "db1.mdb"
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & ";Persist Security Info=False"
Tabla = "tabla"
BDRd.Open Tabla, BDCn, adOpenStatic, adLockReadOnly
With ListBox
Do While Not BDRd.EOF
.AddItem (BDRd.Fields(1).Value)
BDRd.MoveNext
Loop
End With
BDRd.Close
BDCn.Close
  #3 (permalink)  
Antiguo 11/06/2009, 07:20
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo pero ese comando lo coloco en el listbox?
  #4 (permalink)  
Antiguo 11/06/2009, 09:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Podrias poner un boton llamado "cargar lista", y en el ClickEvent del mismo pones este código, claro, la ruta que manejo es suponiendo que tu bd esta en la carpeta del ejecutable de tu proyecto.
  #5 (permalink)  
Antiguo 11/06/2009, 09:49
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo ya agrege los datos a un listbox puedo ahora tengo el problema de que no se quedan reflejados en el listbox cuando cierro el programa

el formulario que estoy realizando tiene 7 textbox por ahora stoy colocando en el listbox que son el text1 y el text 2 pero me coloca los datos en columnas el primer textbox es codigo de la persona..... y el segundo textbox es el nombre....

como podria colocarlos en fina y como podria colocar al listbox una pestaña que diga codigo y nombre?
  #6 (permalink)  
Antiguo 11/06/2009, 16:11
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Te recomiendo que utilices una grilla (MSFlexGrid, FlexGrid, vsFlexArray), para el siguiente ejemplo necesitas lo siguiente:
-Un Form1 llamado Form1, un vsFlexArray llamado vsFlexArray1, dos TextBox llamados Text1 y Text2 respectivamente, tres CommondButton llamados Commond1 (Agregar), Commond2 (Cerrar) y Commond3 (Cargar).
-Crea un módulo y pon el siguiente código:
Sub Rotulo(vsFxAy As vsFlexArray)
With vsFxAy
.Cols = 3
.RowHeight(0) = 450
.ColWidth(0) = 280
.TextArray(1) = "ID"
.ColWidth(1) = 600
.TextArray(2) = "Nombre"
.ColWidth(2) = 3000
End With
End Sub
Sub CargarDatos(vsFxAy As vsFlexArray)
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
Dim Tabla As String
Dim Ruta As String
Ruta = App.Path & "\" & "db1.mdb"
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & ";Persist Security Info=False"
Tabla = "Nombres"
BDRd.Open Tabla, BDCn, adOpenStatic, adLockReadOnly
With vsFxAy
vsFxAy.Rows = 2
Do While Not BDRd.EOF
.TextMatrix(vsFxAy.Rows - 1, 1) = BDRd.Fields(0).Value
.TextMatrix(vsFxAy.Rows - 1, 2) = BDRd.Fields(1).Value
vsFxAy.Rows = vsFxAy.Rows + 1
BDRd.MoveNext
Loop
.Rows = .Rows - 1
End With
BDRd.Close
BDCn.Close
End Sub
Sub AgregarDatos(ID As String, Nombre As String)
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
Dim Tabla As String
Dim Ruta As String
Dim Cursor As String
Dim Cerrojo As String
Cursor = 1
Cerrojo = 3
Ruta = App.Path & "\" & "db1.mdb"
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & ";Persist Security Info=False"
Tabla = "Nombres"
BDRd.Open Tabla, BDCn, Cursor, Cerrojo
If Not BDRd.BOF Then
BDRd.AddNew
BDRd("ID") = ID
BDRd("Nombre") = Nombre
BDRd.Update
End If
BDRd.Close
BDCn.Close
End Sub
-Luego en el formulario pega estas lineas de código:
Private Sub Form_Load()
Call Rotulo(vsFlexArray1)
End Sub
Private Sub Command1_Click()
Call AgregarDatos(Text1.Text, Text2.Text)
Call CargarDatos(vsFlexArray1)
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click()
Call CargarDatos(vsFlexArray1)
End Sub
-y listo, ahi tienes un ejemplo sencillo de como agregar y visualizar datos desde una BD de Access.

P.D. Es una lástima que en este foro no se puedan adjuntar archivos, de esa manera podriamos aprender bastante de todos los foristas que hay en esta buena página.
  #7 (permalink)  
Antiguo 11/06/2009, 18:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo muchas gracias por tus respuestas y por la ayuda que me estas brindando

disculpa que pregunte tanto amigo pero noc que es un modulo ni un vsFlexArray al menos dime como agregarlos y yo les coloco el codigo que me diste amigo muchas gracias y disculpa las molestias
  #8 (permalink)  
Antiguo 12/06/2009, 08:30
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Perdon que te diga esto pero necesitas leer mas compadre, asi no la vamos a hacer, no puedo darte respuestas que de antemano ya deberias saber por ti solo, en fin.
Módulo es donde escribes tus lineas de código (ademas de los controles), es todo lo que se me ocurre decirte en sencillas palabras, en cuanto al vsFlexArray:
En el cuadro de herramientas, con el boton derecho de tu mause, selecciona "Components", te aparecera una ventana con una lista, el nombre del control se llama VideoSoft vsflex Controls, dale click y listo, entonces aparecera en tu cuadro de herramientas con un icono amarillo.
  #9 (permalink)  
Antiguo 12/06/2009, 10:30
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo ya agrege el vsflexarray

este codigo lo coloco en que boton? xq entiendo los otros y se donde van pero no se donde agregar este codigo

Crea un módulo y pon el siguiente código:
Sub Rotulo(vsFxAy As vsFlexArray)
With vsFxAy
.Cols = 3
.RowHeight(0) = 450
.ColWidth(0) = 280
.TextArray(1) = "ID"
.ColWidth(1) = 600
.TextArray(2) = "Nombre"
.ColWidth(2) = 3000
End With
End Sub


Sub CargarDatos(vsFxAy As vsFlexArray)
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
Dim Tabla As String
Dim Ruta As String
Ruta = App.Path & "\" & "db1.mdb"
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & ";Persist Security Info=False"
Tabla = "Nombres"
BDRd.Open Tabla, BDCn, adOpenStatic, adLockReadOnly
With vsFxAy
vsFxAy.Rows = 2
Do While Not BDRd.EOF
.TextMatrix(vsFxAy.Rows - 1, 1) = BDRd.Fields(0).Value
.TextMatrix(vsFxAy.Rows - 1, 2) = BDRd.Fields(1).Value
vsFxAy.Rows = vsFxAy.Rows + 1
BDRd.MoveNext
Loop
.Rows = .Rows - 1
End With
BDRd.Close
BDCn.Close
End Sub

Sub AgregarDatos(ID As String, Nombre As String)
Dim BDCn As New ADODB.Connection
Dim BDRd As New ADODB.Recordset
Dim Tabla As String
Dim Ruta As String
Dim Cursor As String
Dim Cerrojo As String
Cursor = 1
Cerrojo = 3
Ruta = App.Path & "\" & "db1.mdb"
BDCn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Ruta & ";Persist Security Info=False"
Tabla = "Nombres"
BDRd.Open Tabla, BDCn, Cursor, Cerrojo
If Not BDRd.BOF Then
BDRd.AddNew
BDRd("ID") = ID
BDRd("Nombre") = Nombre
BDRd.Update
End If
BDRd.Close
BDCn.Close
End Sub



xq estos comandos son los de los coman boton

Private Sub Command1_Click()
Call AgregarDatos(Text1.Text, Text2.Text)
Call CargarDatos(vsFlexArray1)
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Private Sub Command3_Click()
Call CargarDatos(vsFlexArray1)
End Sub


y este es el comando del formulario:

Luego en el formulario pega estas lineas de código:
Private Sub Form_Load()
Call Rotulo(vsFlexArray1)
End Sub
Private Sub Command1_Click()
Call AgregarDatos(Text1.Text, Text2.Text)
Call CargarDatos(vsFlexArray1)
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
  #10 (permalink)  
Antiguo 12/06/2009, 10:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Van en un modulo, vete a tu explorador de proyectos y ahi con el derecho del mouse agrega un módulo ("mudule" en ingles) y ahi pega esos códigos.
  #11 (permalink)  
Antiguo 12/06/2009, 11:15
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

Para enlazar la base de datos utilizo un control Data ubicado en el formulario, luego utilizo la propiedad DataBaseName, Connect, RecordSource.

esa forma de enlazar la base de datos me funciona amigo?
  #12 (permalink)  
Antiguo 12/06/2009, 11:47
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Nunca he utilizado el Control Data, asi que no sabria orientarte compañero, solo se que visualiza los datos de tu BD del campo (field) que tu le indiques.
  #13 (permalink)  
Antiguo 12/06/2009, 12:03
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo entonces como se guardan los datos en la base de datos?
noc como hacer la conexion de la base de datos por que ya hice todo lo que me dijiste y me da el siguiente error:

error de compilacion

no se ha definido el tipo definido por el usuario....

amigo yo cree una carpeta guarde la base de datos en access en esa carpeta y guarde el proyecto en esa carpeta.......

la base de datos esta basia tengo que agregarle los datos atraves de access?
  #14 (permalink)  
Antiguo 12/06/2009, 12:22
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigos stoy tratando de que los datos que envio a mi base de datos access se puedan ver de forma ordenada en columnas separadas y no uno encima del otro mi codigo del comando agregar es el siguiente

Private Sub CmdAgregar_Click()

If Text1 = "" Then
MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos"
'Salimos de la rutina ya que no se ha ingresado nada en el control text1
Exit Sub
End If

'Agregamos el contenido del Text1 en el control List1
List1.AddItem Text1

If txtNombre = "" Then
MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos"
'Salimos de la rutina ya que no se ha ingresado nada en el control text1
Exit Sub
End If

'Agregamos el contenido del Text1 en el control List1
List1.AddItem txtNombre




Data1.Refresh
Data1.Recordset.AddNew
txtNombre.SetFocus



End Sub
  #15 (permalink)  
Antiguo 12/06/2009, 15:04
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

No te entiendo muy bien, el código que te postie es para eso, para agregar datos a una BD desde uno o mas textbox y visualizarlos en una grilla, creo que la base ahi esta solo tienes que echarle coco para adaptarlo a tus necesidades.
  #16 (permalink)  
Antiguo 13/06/2009, 07:16
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo yo creo que se donde especificar el nombre de la tabla pero noc donde colocarle el nombre a la base de datos..... osea en el codigo que me diste donde especifico el nombre de la base de datos?
  #17 (permalink)  
Antiguo 13/06/2009, 08:19
 
Fecha de Ingreso: octubre-2008
Mensajes: 44
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: ayudar con visual basic 6.0

Ruta = App.Path & "\" & "db1.mdb"

el nombre es el que esta antes del ".mdb" (que es la extención del Access).
  #18 (permalink)  
Antiguo 17/06/2009, 12:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigo ya hice o que me dijiste y me dice error de compilacion bi se ha definido el tipo de usuario
  #19 (permalink)  
Antiguo 17/06/2009, 12:33
 
Fecha de Ingreso: marzo-2009
Mensajes: 117
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: ayudar con visual basic 6.0

amigos estoy tratando de crear un programa el cual pueda reflejar los datos que registre en una base de datos access a en listbox o en un vsflaxarray los comandos que tengo son:

Private Sub botonmodificar_Click()
Data1.Recordset.Edit
If txtNomEdit <> "" Then Data1.Recordset("Nombre").Value = txtNomEdit
If txtDirEdit <> "" Then Data1.Recordset("Direccion").Value = txtDirEdit
If txtTelEdit <> "" Then Data1.Recordset("telefono").Value = Val(txtTelEdit)
Data1.Recordset.Update
End Sub
'Refresca el control
Private Sub CmdRefresh_Click()
Data1.Refresh

End Sub

Private Sub ab_Click()
Form1.Hide
Form2.Show
End Sub

Private Sub botonsalir_Click()
End
End Sub

Private Sub CmdActualizar_Click()
On Error GoTo errSub
'Actualiza el control data
Data1.UpdateRecord
Data1.Recordset.Bookmark = Data1.Recordset.LastModified

Exit Sub
errSub:
If Err.Number = 524 Then
MsgBox "Para actualizar un registro primero agregue uno nuevo o" & _
"modifique algun registro activo", vbInformation
End If

End Sub

Private Sub CmdAgregar_Click()

If Text1 = "" Then
MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos"
'Salimos de la rutina ya que no se ha ingresado nada en el control text1
Exit Sub
End If

'Agregamos el contenido del Text1 en el control List1
List1.AddItem Text1

If txtNombre = "" Then
MsgBox "Debe ingresar un nombre para poder agregar un elemento", vbQuestion + vbOKOnly, "Datos incompletos"
'Salimos de la rutina ya que no se ha ingresado nada en el control text1
Exit Sub
End If

'Agregamos el contenido del Text1 en el control List1
List1.AddItem txtNombre




Data1.Refresh
Data1.Recordset.AddNew
txtNombre.SetFocus



End Sub

Private Sub CmdEliminar_Click()
With Data1.Recordset
'Elimina
If Data1.Recordset.RecordCount = 0 Then Exit Sub
.Delete
'Posiciona en el siguiente
.MovePrevious
If Not .EOF Then .MoveLast
End With

End Sub

Private Sub CmdRefres_Click()




End Sub

Private Sub Command5_Click()
Data1.Recordset.Edit
If txtNomEdit <> "" Then Data1.Recordset("Nombre").Value = txtNomEdit
If txtDirEdit <> "" Then Data1.Recordset("Direccion").Value = txtDirEdit
If txtTelEdit <> "" Then Data1.Recordset("telefono").Value = Val(txtTelEdit)
Data1.Recordset.Update

End Sub

Private Sub Command1_Click()
'Si la lista no está vacía entonces podemos eliminar
If List1.ListIndex <> -1 Then
'Eliminamos el elemento que se encuentra seleccionado
List1.RemoveItem List1.ListIndex
End If

End Sub

Private Sub Data1_Validate(Action As Integer, Save As Integer)
Select Case Action
Case vbDataActionMoveFirst
Case vbDataActionMovePrevious
Case vbDataActionMoveNext
Case vbDataActionMoveLast
Case vbDataActionAddNew
Case vbDataActionUpdate
Case vbDataActionDelete
Case vbDataActionFind
Case vbDataActionBookmark
Case vbDataActionClose
Screen.MousePointer = vbDefault
End Select
Screen.MousePointer = vbHourglass

End Sub

Private Sub Form_Load()

End Sub


ya el programa agrega los datos en la base de datos y se reflejan en el listbox como puedo hacer para que se reflejen en un vsflexarray y que al momento que yo cierre el programa y lo abra nuevamente se sigan reflejando las personas que estan registradas en la base de datos en el vsflexarray
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 04:29.