Crear catalogo de imágenes que al dar clic sobre la imagen agregue la descripción al detalle de la factura

Bueno tengo un formulario llamado factura el cual tiene un subformulario llamado Detalle factura donde agrego todos los productos que voy ha vender como hay muchos productos en un formulario que tiene un cuadro de lista seleccionamos el producto que queremos vender hasta hay es ladinamica más o menos de lo que hacemos para agregar productos al detalle de nuestra factura

Se me ocurrió la idea de hacer un formulario así:

Esta es una imagen de la idea que tuve y espero sea posible hacerse la idea es crear un cuadro como el blanco que me deje ingresar los nuevos productos y los valla agregando y que cuando necesite agregar un producto al detalle de la factura solo sea escoger la imagen correspondiente a lo requerido lo cual facilitaría el trabajo

Espero sea posible y quedo atento a cualquier ayuda que me puedan brindar la base de datos es access

2 respuestas

Respuesta
2

Muy pocas pistas das, pero... Voy a aprovechar una base que ya tenía hecha. Si tengo la tabla Productos, donde le he añadido un campo Foto( por ponerle un nombre)

Vale con tres registros, más no trabajo.

Construyo un formulario con controles imagen llamados precisamente A1, A2 y A3, donde con el asistente le asigno la imagen que quiero que muestre

Si tengo el formulario Ventas con un subformulario DetalleVenta donde se van a reflejar los productos

Verás que en el encabezado le he añadido un botón Ver Productos(aunque podría ser en cualquier otro evento). Cuando lo pulso

Si hago clic en la imagen de las botellas(A1)

Si ahora hago clic en las cervezas A2

Me va pasando al subformulario los productos y su precio.

Te pongo los códigos de los controles imagen

Private Sub A1_Click()
If CurrentProject.AllForms("ventas").IsLoaded Then
DoCmd.RunSQL "insert into Detalleventa(producto,precio) select producto,precio from productos where foto=""A1"""
DoCmd.RunSQL "update detalleventa set idventa=forms!ventas!idventa where idventa is null"
Forms!ventas!DetalleVenta.Form.Requery
End If
End Sub
Private Sub A2_Click()
If CurrentProject.AllForms("ventas").IsLoaded Then
DoCmd.RunSQL "insert into Detalleventa(producto,precio) select producto,precio from productos where foto=""A2"""
DoCmd.RunSQL "update detalleventa set idventa=forms!ventas!idventa where idventa is null"
Forms!ventas!DetalleVenta.Form.Requery
End If
End Sub
Private Sub A3_Click()
If CurrentProject.AllForms("ventas").IsLoaded Then
DoCmd.RunSQL "insert into Detalleventa(producto,precio) select producto,precio from productos where foto=""A3"""
DoCmd.RunSQL "update detalleventa set idventa=forms!ventas!idventa where idventa is null"
Forms!ventas!DetalleVenta.Form.Requery
End If
End Sub

Si tienes muchos productos no sería problema, ya que todo consiste en copiar el código de un control, pegarlo en el evento Al hacer clic de otro y sustituir, por ejemplo, A1 por A4, A5, A6, etc

No te puedo decir más, porque como te dije, con las pistas que das...

¡Gracias! julián es lo que quería pero tengo una pregunta no conoces una forma de poder agregar la foto y el código haciéndolo desde el mismo formulario o es más difícil lo digo en caso de que alguien que no sea yo tuviera que hacerlo

Por ultimo y que pena molestarte sabes si también puedo filtrar las imágenes para tener la que deseo en caso de que fueran muchas

A la primera. Hacer se puede hacer de todo. Después de muchos años he conseguido que Access me lave y planche la ropa. Vamos en serio. Es que no sé como guardas los productos en su tabla. Me explico, si tienes un campo donde guardas la ruta a la imagen, si tienes un campo donde sólo guardas el nombre, y todas las imágenes están en la misma carpeta, si los productos están clasificados por categorías, etc, etc.

A la segunda, claro que puedes hacerlo, pero está en referencia a la respuesta anterior ¿cómo distingues los productos? ¿Por categorías? ¿Por...?

Ya que, por ejemplo, en ese formulario1 que te puse, se podría poner un control solapas y asignarle a una, por ejemplo, Bebidas, las imágenes de sus productos, a otra solapa Condimentos, las imágenes de sus productos. O también se podría poner un combinado con las categorías y que al elegir uno, a cada control imagen le asignara un producto de esa categoría.

Jajaja si es que acá entre nos gran parte de lo que he hecho te lo adjudicó jejeje la verdad ha sido una gran ayuda Julián. 

Bueno la tabla productos tienes de las dos formas categorías y producto tomo tal nombre entonces te nombró los campos de la tabla productos IDproducto categoría Nombre costo además tiene un campo para adjuntar la imagen para nuestro catálogo pero aparece es el símbolo de adjuntar como tal no como pero... Yo modifique como tu ejemplo para que me sirviera 

Aparte se cargan en una consulta que se llama inventario y en la factura es el detalle de la factura que tiene los mismos campos con la diferencia que se añade cantidad total y observación entonces espero con esto ser mas que claro si necesitas imágenes o en si la base de datos me avisas y de ante manos muchas gracias bro por tu ayuda espero que Dios te recompense la ayuda que me has brindado todo este tiempo 

Pues me has hecho polvo porque te había preparado un ejemplo, pero sin categorías. Si tengo la tabla Productos con un campo Imagen que es donde va la ruta a la imagen( ya que no sé si están todas en una misma carpeta)

Y el formulario Ventas

Cuando elijo un cliente

Hago constar que no tengo imágenes de productos así que uso unas que tengo. Si en un producto(imagen), elijo una cantidad(combinado de debajo. Por ejemplo

Me pasa al subformulario

El producto, el precio, la cantidad y en el control Importe del formulario Ventas me va poniendo la suma acumulada

Así que esta noche me pondrá a clasificarlos por categorías. Dame tiempo

Gracias icue pero creo que no me hice entender bien el ejemplo primero me ayudo muchísimo pero para agregar un producto nuevo a ese formulario de imágenes sin tener que entrar en el código sino que haciéndolo desde el mismo formulario me explico es como tener un cuadro en blanco que me de la opción de cuando le de clic me deje adjuntar una imagen y hacerlacompatible con un código ya prestablecido para que quede ligada al registro nuevo de la tabla productos sin tener que entrar al código como tal esa es mi pregunta bro igual pues quedo atento a tu respuesta y también gracias por la ayuda y perdón la falta de claridad amigo

Si pusieras lo que dices podrías usar la función MSOFiledialog para localizar la imagen que quieras poner, pero sí o sí tendrías que guardar la ruta en la tabla Productos, además la imagen tendría que tener exactamente el nombre que quieras añadir, para cortar la cadena por el final. Por otro lado te diré que la única forma de hacer el formulario con las imágenes tal como lo ves es hacerlo independiente, y por tanto los controles imagen y los combinados hay que "construirlos" a propósito. ¿Se puede hacer? Sí, se puede hacer pero ya estaríamos hablando de que tendría que hacerlo un programador de VB para que le diera la nueva posición que va a ocupar, el tamaño etc. y eso ya escapa del ámbito de las preguntas que aquí se hacen, sería hacer una base de datos casi, o sin casi, profesional, y esos quieren cobrar. Te diría que lo normal es hacerlo desde el propio formulario Productos, ya que puedes poner el nombre, el precio,... y la ruta a la imagen( o el nombre de la imagen si están en la misma carpeta).

Mira si tengo la tabla que cité

El formulario, que te repito que es independiente, con un botón de comando( aunque podría ser perfectamente un control imagen)

Cuando pulso el botón

Selecciono Gambas y

Por si quieres probarlo abre el editor de VB y pulsa Herramientas-Referencias y activa la casilla Microsoft Office 16.0 Object Library

Luego pega la función

Public Function buscaArchivo() As String
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False
.ButtonName = "Seleccionar"
.Title = "Seleccionar el archivo"
.InitialFileName = "c:\users\gonza\documents\imagenesusar"
.InitialView = msoFileDialogViewDetails
.Filters.Clear
.Filters.Add "All files", "*.*"
If .Show = True Then
buscaArchivo = .SelectedItems(1)
Else
MsgBox "Ha pulsado el botón <Cancelar>."
End If
End With
End Function

Lógicamente, en InitialFileName tendrás que cambiar mi ruta por la tuya

Por último, el código del botón es

Private Sub Comando19_Click()
Dim s As String, n As String, p As String
s = buscaArchivo()
n = Mid([s], InStrRev([s], "\") + 1)
p = Left([n], Len([n]) - 4)
DoCmd.RunSQL "insert into productos(producto,imagen)values('" & p & "','" & s & "')"
End Sub
Respuesta
1

Rafael: Hace mucho tiempo que no respondo en el Foro, pero ésta pregunta me ha llamado la atención, porque había hecho algo similar para un usuario.

El enlace de descarga: http://www.mediafire.com/file/9kx2nxeob1jgpit/GEstServ.rar/file 

Mira el Botón>> Ventas Rápidas Mostrador.

Dado que no dispongo de tiempo para aclaraciones la BBDD la cedo tal cual está, y cada uno debe interpretarla. Si es útil estupendo.

hola jacinto estoy viendo tu base de datos esta super pero mi pregunta es como le agregas productos 

y como le agregas la imagen alproducto 

Hola julián hice lo que me dijiste y me agrega la ruta a la tabla de productos pero la imagen no la agrega al formulario sera que hicealgo mal

Rafael: Disculpa que te conteste tan tarde, pero como te comenté en mi respuesta inicial, no suelo entrar en Todoexpertos con la frecuencia que lo hacía antes, y prácticamente no respondo.

Mira la tabla Artículos. Las imágenes han de estar cargadas previamente en la Carpeta.

Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas