Duda de un proyecto de VB

Hola, soy un joven que esta realizando un master en programación y como proyecto final el profesor nos ha mandado realizar un proyecto en el que podamos insertar, borrar, modificar y buscar registros, todo ello como no conectado a una base de datos, en este caso Access 2000. El proyecto en si parece fácil, pero hay algunas cosas que son difíciles.
La primera dificultad son las relaciones de la base de datos entre dos tablas obligatorias, el problema es que en el programa tienes que visualizar todos los campos pero al insertar u nuevo registro, al grabar solo escribe en una tabla, por que el campo por el que se realiza la relación no se puede escribir.Ese es mi principal problema si me pudieras a yudar lo antes posible, te lo agradecería, ya que tengo muy pocos días para presentar el proyecto. Muchas gracias. Atentamente
Antonio

1 respuesta

Respuesta
1
Bien mira!
Supongamos que tenemos 2 tablas
- Producto (id_producto, nombre)
- Factura (id_factura,numerofactura, fecha,id_producto)
Bien! Tenemos las 2 tablas relacionadas por el atributo id_producto.
Bueno! Queremos llenar realizar una factura para un cliente...
¿Qué es lo más lógico?
Pues que llenes tabla por tabla, En Bases de datos tu llenas una tabla y la otra tabla la llenas de acuerdo a los datos que ingresaste en la primera tabla.
Entonces! Primero tenemos un formulario donde... ingreso un producto en la tabla productos... Por ejemplo: Ingresamos el Producto "Disco Duro" el Id_producto lo puedes poner autonumérico... ta ta ta Adicionar!
Listo! Hemos adicionado un producto...
Ahora vamos a crear la factura...
Imagina el formulario:
-Te pide Fecha
-Numero Factura
-Nombre Producto
Okey!
Bien! Como ya adicionaste un producto, debes darle la dinámica al usuario para que en el formulario solo tenga que seleccionar productos que adiciono por otro formulario.
Que tal un ComboBox! Es una buena sugerencia.
Para que puedas ver los productos adicionados debes realizar una consulta SELECT
En la tabla Productos para que te arroje todo los productos al ComboBOx!
Bueno! Entonces! Tenemos el formulario factura y un comboBOx... si damos click en el combo podemos seleccionar el producto que queremos...
-Escribimos Fecha
-Escribimos Numero Factura
-Seleccionamos Nombre Producto
Antes de Insertar los datos en la tabla Factura... recordemos los atributos de esta tabla:
Factura (id_factura,numerofactura, fecha, id_producto)
Bien! necesitamos el Id_producto
De acuerdo al producto que el usuario haya seleccionado has la respectiva consulta para conocer el Id_producto de ese producto...
Listo! Y se lo insertas al de Factura!
Ese es el pequeño trabajo que hay que hacer!
Bien! ¿Si no es suficiente?
Enviame el email y le envío un ejemplo en visual basic!
Yo también tuve el mismo problema que usted pero a la final todo es sencillo!
Dont worry!
Avíseme como le fue!
Rorigo
Muchas gracias por la ayuda me sirvió de mucho, pero ahora tengo otro problema
Que ees el siguiente:Mira ahora tengo que realizar la operación de búsqueda de registros, y la tengo que hacer por tres campos, dentro de esos tres campos cabe la posibilidad dde buscar solo por un campo, por dos, o por los tres. Estoy totalmente perdido en este aspecto por que no se por donde cogerlo, ya que solo me busca por el campo conectado al primer textbox.si me pudieras ayudar en esto te lo agradecería muchísimo. Espero tu respuesta.notrin.
Hay varias posibilidades para hacer ese tipo
de consultas... lo promordial aquí es que me indiques por
que método estas haciendo la consulta...
A través de
- ¿Data Environment?
- ¿Solo código SQL con objeto connection?
- ¿A través de Control ADO ADOC?
Bien! A mi parecer el más cómodo y fácil es a través del Data Environment
es una especia de Consultas Parametrizadas...
Al igual que con código SQL puro dentro del código VB.
Bueno!... debes hacer una consulta para cada caso y validar
cual ES la que el usuario desea realizar... así el programa sabrá que
consulta tomar...
Una consulta para: Un solo Campo
"SELECT nombre
FROM clientes
WHERE clientes.nombre ='" & TextBoxNombre.text & "'"
Una consulta para: Dos Campos
"SELECT nombre
FROM clientes
WHERE clientes.nombre ='" & TextBoxNombre.text & "' AND clientes.apellido='" & TextBoxApellido.text & "'"
Una consulta para: Tres Campos
"SELECT nombre
FROM clientes
WHERE clientes.nombre ='" & TextBoxNombre.text & "' AND clientes.apellido='" & TextBoxApellido.text & "' AND clientes.ciudad='" & TextBoxCiudad.text & "'"
Así que solo es cuestión de validar los TExtBox para saber que quiere el usuario!
Pero bueno! Especifica bien! Por cual método lo haces para poder
aclarar bien la duda!
Espero sea lo que buscas, o sino Fresco.. aclarame la pregunta y con gusto puedo ayudar!
Dale y me dices como vas!
Rodrigo
El control que debo utilizar, por que es le que nos ha especificado el profesor, es un ADODC, pero creo que también lo podemos hacer con alguna instrucción SQL, muchas gracias
Bien! Te explico haciendo una conexión a la Base de Datos NWIND.MDB que
obviamente debe estar en tu PC
Abre VB y crea un formulario:
Insértale:
- Cuatro Controles TextBox
- Un Control ADO
- Un Botón
Inserta el siguiente código dentro del Botón:
Private Sub Command1_Click()
'Observa muy bien que todo lo estamos haciendo con código
'aunque podíamos haber usado las propiedades ambas funcionan igual
'Consulta teniendo en cuenta 2 campos! Esta es la base podéis usar los campos
'y el numero de tablas que desees, solo fíjate en la estructura de tu base de datos
Text1.Text = "México D.F."
Text2.Text = "05023"
'Conectemos el control ADODC con la base de datos
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Archivos de programa\Microsoft Visual Studio\VB98\NWIND.MDB;Persist Security Info=False"
'Observa que estamos usando 2 tablas para la consulta
'debes tener en cuenta que las cadenas van en ' comilla sencilla
Adodc1.RecordSource = "SELECT Clientes.NombreContacto,Pedidos.FechaEnvío From Clientes, Pedidos WHERE Clientes.IdCliente = Pedidos.IdCliente AND (Clientes.Ciudad ='" & Text1.Text & "') AND (Pedidos.CódPostalDestinatario='" & Text2.Text & "')"
Adodc1.Refresh 'Es necesario siempre
'Enlazamos los resultados de la consulta a 2 textBox
Set Text3.DataSource = Adodc1 'OJO no olvidar colocar SET
Text3.DataField = "NombreContacto"
Set Text4.DataSource = Adodc1 'OJO no olvidar colocar SET
Text4.DataField = "FechaEnvío"
End Sub
Bien! Espero sea lo que necesites!
Como ves solo es cuestión de saber las primitivas SQL
y saber que las cadenas siempre van entre comillas sencillas
para que no te genere error, Al igual que saber jugar con
los controles de VB y consultas SQL.
Observa muy bien la forma en que tomo el contenido de los TEXTBOX1 y TEXTBOX2
y lo inserto dentro de la Consulta... ahí esta la clave de todo!
Dale y me dices como van las cosas...
Y fresco hermano que a mi también me tuvieron paciencia!
Rodrigo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas