Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/10/2010, 11:13
Avatar de JuJoGuAl
JuJoGuAl
 
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 15 años, 2 meses
Puntos: 19
Respuesta: ¿Realizar una consulta desde visual studio 2005 a Access?

Cita:
Iniciado por jtallafe Ver Mensaje
Saludos antes que todo reciban un coordial saludo bueno he rato de leer y buscar dentro de tantas pagina que ya no puedo más y me decido colocar este foro para ver si alguien me ayuda.....

Mi problema es el siguiente estoy aprendiendo visual studio 2005 con visual basic estoy tratando de hacer un pequeño programa que permita registrar nombres,apellidos, telefonos de mis amigos, el formulario registro tienes 4 textbox que son los siguientes: tbRegistro, tbNombre, tbApellidos, tbTelefono...

Cual es el problema que de verdad no se como empezar y deseo aprender es que cuando le de click al boton de registro me salga el formulario con los textbox vacios pero el TBREGISTRO no quiero que salga vacio, quiero que haga una consulta a mi base de dato que esta en access y vea el cambo registro para ver cual es el registro mayor y de ahi sumarle uno para que este pueda mostrarlo en text automatico sin necesidad de que yo coloque el numero de registro y siga un orden...

Por si acaso me explico mejor de lo que quiero...

Tengo mi formulario principal cuando le de click al boton de registrar me va a abrir el formulario de registro con los textbox mencionado pero quiero que cuando va lla ingresar a LUIS, PEREZ,45329495 su registro se por ejemplo si es el primero que agrego me salga directamente 0001...

Anexo el codigo que mas o menos estaba haciendo para este caso cualquier cosa de verdad necesito la mayor ayuda posible....

Private Sub FrmHistoria_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim conexion As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Jose Tallaferro\Mis documentos\Gestion de Paciente\Gestion de Pacientes\Gestion de Pacientes\Paciente.mdb"
Dim conectar As New OleDb.OleDbConnection
Dim comunicador As New OleDb.OleDbCommand
Dim val_max As Integer

conectar.ConnectionString = conexion
comunicador.Connection = conectar
comunicador.CommandText = ("SELECT MAX(Registro)As Maximo FROM Paciente")
conectar.Open()

conectar.Close()
Bueno amigo supongo que en la BD tienes dichos campos osea en la base de datos de acces tienes unos campos llamados (nombr,Appe,Cedula) y adicionalmente un campo llamado ID, acces tiene la propiedad q alos campos le asignas el valor de AUTOINCREMENTAR, ahora si lo que quieres es hacer lo que tu dices yo haria lo siguiente..

En el boton "GUARDAR" de tu formulario (El boton q guarda los datos en la BD) haria esto:

Código vb:
Ver original
  1. 'ESTO LO TENGO EN UN MODULO:
  2. Public table As New ADODB.Recordset
  3. Public comand As New ADODB.Command
  4. Public conex As New ADODB.Connection
  5.  
  6. Public Sub conexion()
  7.         With conex
  8.             .Provider = "microsoft.jet.oledb.4.0"
  9.             .ConnectionString = "Data Source='Paciente.mdb'" & ";Persist Security Info=False;Jet OLEDB:Database Password=''"
  10.             .Open()
  11.         End With
  12.     End Sub
  13.  
  14. 'Luego en el Boton de Guardar Registro o como lo tengas tu algo asi:
  15. conexion()
  16. Dim valor As Integer
  17. table.Open("SELECT MAX(`registro`) FROM `Paciente`", conex, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
  18. valor = con.Fields(0).Value
  19. valor=valor+1
  20. table.close
  21. table.open("INSERT INTO Paciente (registro,Nombre,Apellido,Telefono) Values (" & valor & ",'" & tbNombre.Text & "','" & tbApellidos.Text & "','" & tbTelefonos.Text & "')", conex, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
  22. msgbox("Registro Añadido!")
  23. table.close
  24. conex.close

Espero te sirva de algo....