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

VB conectado a Access 03

Estas en el tema de VB conectado a Access 03 en el foro de Visual Basic clásico en Foros del Web. Estimados. Una pequeña consulta. He creado una app en vb6 la cual se conecta a una bd .mdb de access 03. Todo esto esta en ...
  #1 (permalink)  
Antiguo 14/03/2009, 20:00
 
Fecha de Ingreso: agosto-2006
Mensajes: 92
Antigüedad: 17 años, 8 meses
Puntos: 0
Sonrisa VB conectado a Access 03

Estimados.
Una pequeña consulta.
He creado una app en vb6 la cual se conecta a una bd .mdb de access 03. Todo esto esta en red. Cabe señalar que la app esta instalada en 16 host, los cuales tienen por conexion ODBC enlazada la BD, la cual esta localizada en otro host. El origen de datos lo linkeo a una unidad de red (en este caso un disco Z:) que cada vez que inicie el equipo quede conectada automaticamente.

He realizado algunas pruebas y esta por lo menos hasta el momento bien.
Mis preguntas:
Habra algun problema de inconsistencia al guardar datos o consultarlos? Esto debido a la cantidad de conexiones?

Es posible verificar la existencia de un registro para no volver a reescribirlo y evitar errores. Esto, ya que como la bd reside en otro host.

Lo ultimo, es posible implementar MySQL en este caso, para evitar problemas de duplicados, datos no ingresados u otros? A lo mejor la app no merece tanto DBMS pero seria mas seguro.

Gracias
  #2 (permalink)  
Antiguo 15/03/2009, 10:32
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: VB conectado a Access 03

En si muchos programadores conocidos recomiendan SQL Server 2000 para trabajar con varias terminales de procesamiento de datos....lo cual concuerdo con ellos pero en si access es una base de datos bastante estable.....te hablo desde mi experiencia......yo hasta ahora jamas tuve problemas con access lo que si usa transacciones para asegurarte la correcta grabación de datos.......y al usar tantas conecciones te aconsejo que conectes las bases cada vez que abres el ejecutable.......ejemplo sería leer la ruta de la base de datos desde un txt.......de esa manera te aseguras de que solo se conecten a la base los exes que estan ejecutados y te evitas conecciones que a lo mejor no se estan utilizando por ningún exe...me explico? y te aconsejo que al tener tantas conecciones a la base que pongas un campo mas en cada tabla en caracter de bandera....o sea un campo que se llame estado si? y ese campo le vas a poner un 1 por cada vez que un usuario selecciones ese registro.....entonces si algún otro usuario quiere medificarlo o algo asi deberías consultar que ese estado no se encuentre en 1....asi te evitas las duplicaciones y demas.....obviamente que cuando ese registro se libera deverias ponerle valor 0 (cero) asi otro usuario puede hacer uso de él.
espero te sirva cuentanos como te fue
saludos
  #3 (permalink)  
Antiguo 15/03/2009, 11:40
 
Fecha de Ingreso: agosto-2006
Mensajes: 92
Antigüedad: 17 años, 8 meses
Puntos: 0
Respuesta: VB conectado a Access 03

Primero que todo.
Muy agradecido por la ayuda.
Segundo. Quisiera comentar lo que hago en mi caso. En varios de los forms cargo combos con datos de la base, lo que si me encargue de que una vez cargados, la conexion se cierra inmediatamente.
En caso de guardar datos, es lo mismo. Una vez realizado el proceso de ingreso de datos, cierro la conexion a la base de datos, lo que si permanece conectada la unidad de red que he agregado al host.

Me podrias ayudar un poco mas con el tema del puntero para el acceso a la base de datos? Ahi me quedé un poco enredado.

Adjunto el codigo que poseo en la conexion a la hora de guardar los datos.


Esta es la carga de los datos en el combo. La cual esta en el evento formload:

////////////////////////

Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim txtsql As String
con.Open ("dsn=gestion_ejecutivos")
On Error Resume Next
rs.Open "Select * From tb_usuarios", con
Do Until rs.EOF()
Combo1.AddItem rs!nom_usuario
rs.MoveNext
Loop
con.Close

////////////////////////

Luego el codigo para guardar datos en la tabla

/////////////////////////////////////////////////////////////////////

Private Sub Command2_Click()
If (RichTextBox1.Text = "" And RichTextBox1.Visible = True) Or Combo1.Text = "" Or Text1.Text = "" Or Combo2.Text = "" Or Combo3.Text = "" Or Combo4.Text = "" Or Combo5.Text = "" Or Combo6.Text = "" Or Combo7.Text = "" Or (Option1.Value = False And Option2.Value = False) Then
MsgBox "Por favor ingrese todos los datos solicitados"
Else

Dim mensaje As String
mensaje = MsgBox("Esta de seguro de guardar estos datos?", 4164)

If mensaje = 6 Then

Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim txtsql As String
con.Open ("dsn=gestion_ejecutivos")
On Error Resume Next

If Option1.Value = True Then
txtsql = "INSERT INTO tb_evaluaciones(fono_cliente,manejo_y_claridad,act itud_ante_req,solucion,oportunidad_de_mejora,dia_e val,mes_eval,ano_eval,nom_usuario,area,gestion_a_r ealizar)Values('" & Text1 + "'," & Combo5.Text & "," & Combo6.Text & ",' SI ','" + Combo7.Text & "','" + Combo2.Text & "','" + Combo3.Text & "','" + Combo4.Text & "','" + Combo1.Text & "','" + Label10 + "','" & RichTextBox1.Text & "')"
Set rs = con.Execute(txtsql)
con.Close

Else

If Option2.Value = True Then
txtsql = "INSERT INTO tb_evaluaciones(fono_cliente,manejo_y_claridad,act itud_ante_req,solucion,oportunidad_de_mejora,dia_e val,mes_eval,ano_eval,nom_usuario,area,gestion_a_r ealizar)Values('" & Text1 + "'," & Combo5.Text & "," & Combo6.Text & ",' NO ','" + Combo7.Text & "','" + Combo2.Text & "','" + Combo3.Text & "','" + Combo4.Text & "','" + Combo1.Text & "','" + Label10 + "','" & RichTextBox1.Text & "')"
Set rs = con.Execute(txtsql)
con.Close
End If
End If

MsgBox "Evaluación ingresada con éxito"
Text1.Text = ""
Combo5.ListIndex = 0
Combo6.ListIndex = 0
Combo7.ListIndex = 0
Option1.Value = False
Option2.Value = False
RichTextBox1.Text = ""
End If
End If
End Sub

/////////////////////////////////////////////////////////////////////////

Lo que no he podido lograr es saber si un registro ya existe, esto para evitar la duplicidad de datos.

Gracias por su excelente aporte. Estare atento a sus observaciones de mi codigo.
  #4 (permalink)  
Antiguo 15/03/2009, 11:56
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: VB conectado a Access 03

Hola, simplemente hace un select consultando si el registro ya existe, si te devuelve un registro es porque ya existe y ahi le haces un Exit Sub...

saludos.
__________________
" Todos Somos Ignorantes; lo que pasa es que no todos ignoramos las mismas cosas " - Albert Einstein
  #5 (permalink)  
Antiguo 15/03/2009, 12:19
 
Fecha de Ingreso: agosto-2006
Mensajes: 92
Antigüedad: 17 años, 8 meses
Puntos: 0
Sonrisa Respuesta: VB conectado a Access 03

Cita:
Iniciado por seba123neo Ver Mensaje
Hola, simplemente hace un select consultando si el registro ya existe, si te devuelve un registro es porque ya existe y ahi le haces un Exit Sub...

saludos.
Estimado.
Con respecto a su ayuda. En este caso aunque la base de datos este en una parte remota, es posible hacer lo citado? Bueno me refiero a la busqueda y comparacion del dato ingresado con un registro existente.?

Gracias por la ayuda.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:32.