Pregunta:
¿ayuda en visual basic 6.0 urgentisimo?
mario de jesus
2012-03-27 21:06:34 UTC
hola que tal una mi pregunta es esta tengo varios formularios en visual basic de un proyecto de una ferretera los datos los tengo que tomar de una base de datos en access y la pregunta es esta cual es el codigo para desde visual basic introducir datos a la base de datos modificarlos elininarlos crear nuevos, se basa en claves de productos por ejemplo un clavo tiene un codigo f505 yo desde visual basic pongo ese codigo y lo que quiero es que me muestre todo referente a ese producto en este caso el clavo tamaño, precio, descuento etc , y que pueda modificarlo crear un nuevo producto o eliminar uno ya existente
espero contar con su ayuda gracias
Tres respuestas:
aem
2012-03-28 13:03:19 UTC
Hola:

Antes que el proyecto, tenes que tener la base de datos armada y funcionando.

Tu tabla a la que haces referencia, es una tabla entidad, o sea tiene campo clave que puede ser un autonumerico asignado por el sistema, o otro dato irrepetible.

Si los elementos no estan codificados, o faltan elementos para codificar, te conviene ponerles a esos elementos el autonumerico que te dà la base de datos, caso contrario, si el codigo ya esta (codigo de barras, o similar) tenes que usar ese numero o dato como campo clave.

Si se supone que mas de uno puede usar el programa en forma simultanea, entonces no podes usar ADODC porque este usa la base en forma exclusiva, sino que tenes que usar la mirosoft activeX Data Object Library 2.6 y hacer una conexion y luego un recordet para consultas y operaciones

La base de datos, que ademas tendra la tabla de clientes, de empleados, de formas de pago, facturas, y otras mas identidad y unas tablas auxiliares, tiene que estar en la misma carpeta del proyeto, para que usese donde se use el proyecto, funcione, aunque si el programa esta en otra Pc y vas a usar la misma base de datos, tendras que crear una conexion permanente de red, a la carpeta donde esta el proyeto, siendo la ruta de la base, el nombre de la unidad y el nombre de la base de datos.

la cabecera de tu formulario, definis las variables a usar.

luego escribis en el formulario,

Public cn As New ADODB.Connection

Public rsc1 As New ADODB.Recordset

Public modi%, cl%



luego conectas la base, en el load del formulario:

sub form_load()

If cn.State = 1 Then cn.Close

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\MisDatos.mdb; Persist Security Info=False"

end sub



Ya tenes la conexion, ahora, para agregar datos a la base, tendras que hacer una consulta con insert, o una orden ejecute.

Teniendo el dato que queres agregar en un textbox, supongamos el numero

en un boton pondras el codigo



If rsc1.State = 1 Then rsc1.Close

rsc1.Open "Select * from Datos", cn, adOpenStatic, adLockOptimistic

cl = rsc1.RecordCount +1'//establece la cantidad de registros y carga cl para el proximo

rsc1.close

cn.Execute "Insert Into Datos Values(" & cl & ", '" & txtnombre & "', " & txtnume & _

", #" & txtfecha & "#')"



Aca use el ejecute, pero podria haber usado la misma consulta de insertar datos con el

if rsc1.estate = 1 then rsc1.close

rsc1.Open "Insert Into Datos Values(" & cl & ", '" & txtnombre & "', " & txtnume & _

", #" & txtfecha & "#')", cn, adOpenStatic, adLockOptimistic



Para leer el registro guardado, si es unico, no hay problema en mostrarlo en una o varias cajas de texto, pero si son mas de un dato, hay que crear un conjunto de comandos que nos posicionen en el recordset y llenen las cajas a medida que avanzamos en los registros.

La consulta, es similar a la que hice para ver los registros

if rsc1.State = 1 Then rsc1.Close

rsc1.Open "Select * from Datos", cn, adOpenStatic, adLockOptimistic

if rsc1.recordcount > 1 then

mostrar

else

msgbox"No hay registros"

rsc1.close

end if

End Sub

Private Sub Cmdprimero_Click()

rsc1.MoveFirst

mostrar

End Sub



Private Sub CmdSiguiente_Click()

rsc1.MoveNext

If rsc1.EOF Then

rsc1.MoveLast

MsgBox "HA LLEGADO AL ULTIMO REGISTRO DE LA LISTA"

End If

mostrar

End Sub



Private Sub CmdUltimo_Click()

rsc1.MoveLast

mostrar

End Sub



Private Sub CmdAnterior_Click()

rsc1.MovePrevious

If rsc1.BOF Then

rsc1.MoveFirst

MsgBox "HA LLEGADO AL PRIMER REGISTRO DE LA LISTA"

End If

mostrar

End Sub



Public Sub mostrar()



TxtId= rsc1.Fields("IdDato")

TxtNombre.Text = rsc1.Fields(1) &"" '//llamo por la ubicacion de campo en vez del nombre

TxtNume = rsc1.Fields(2) & "" '//le agrego una cadena, porque si esta vacio indicara error

TxtFecha = rsc1.Fields(3) & "" '//porque el recodset trae NULO y el txt no recibe esta cosa

End Sub



BUeno creo que ya tenes una idea de coo hacerlo, ponete manos a la obra y si te surge algun problema, mandame desde mi perfil, correo un mensaje recordandome el motivo, y te paso mi e-mail asi me envias lo que has hecho y seguimos en contacto.



Dios te bendiga

Saludos

Antonio
2012-03-28 14:08:04 UTC
Dame tu correo y te mando un proyecto que ise yo tengo todo eso
Pinypon
2012-03-28 07:44:48 UTC
Pues utiliza el control data


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...