Access - Separar consulta unidades en líneas diferentes

 
Vista:

Separar consulta unidades en líneas diferentes

Publicado por inter (3 intervenciones) el 21/11/2012 13:13:33
Hola a todos,
Tengo una base de datos en access que con una consulta que (simplificándolo mucho) genera un resultado de este modo:

Nombre..............uds
producto1............2
producto2............1
producto3............1
producto4............4

El problema me surge a que ahora necesitaré ponerle un código de barras (un número) a CADA UNIDAD (no a cada producto), por lo que necesitaría, antes de nada, separar las unidades en líneas de este modo:

Barcode..........Nombre..............uds
0000001.........producto1............1
0000002.........producto1............1
0000003.........producto2............1
0000004.........producto3............1
0000005.........producto4............1
0000006.........producto4............1
0000007.........producto4............1
0000008.........producto4............1

El generado del código de barras no tiene ciencia pero... ¿como puedo separar en una consulta cada unidad en una línea?

Gracias a quien pueda ayudarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Separar consulta unidades en líneas diferentes

Publicado por 2pl (461 intervenciones) el 21/11/2012 16:22:13
No creo que se pueda hacer directamente en access (consulta, informe etc...) pero si que se puede hacer con VBA.Tendrias que tener una tabla con la estructura de la segunda, te lees la primera y vas creando tantos registros como unidades.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub BtnAceptar_Click()
    Dim i As Integer
    Dim DB As Database
    Dim Tabla1 As Recordset               ' Nombre ficticio de la tabla donde estan las unidades
    Dim Tabla2 As Recordset               ' Nombre ficticio de la tabla que vas a generar
 
    Set DB = DBEngine.Workspaces(0).Databases(0)
    Set Tabla1 = DB.OpenRecordset("Nombre de la tabla real")
    Set Tabla2 = DB.OpenRecordset("Nombre real de la nueva tabla")
 
   ' ELIMINAR LOS REGISTROS DE LA TABLA SEGUNDA
   DoCmd.RunSQL ("DELETE FROM Nombre real de la nueva tabla")
 
   Tabla1.MoveFirst
   Do While Not Tabla1.EOF
      for i=1 to Uds
           Tabla2.Addnew
           Tabla2("Barcode") =    al que corresponda
           Tabla2("NombredelcampodelProducto") = Tabla1("NombredelcampodelProducto")
           Tabla2("Uds")=Tabla1("Uds")
           Tabla2.Update
      next
      Tabla1.MoveNext
  Loop
End Sub


PD: Lo he hecho de memoria, asi que perdona los posibles errores
Algo complicadillo, pero es la excencia de la programación
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Separar consulta unidades en líneas diferentes

Publicado por inter (3 intervenciones) el 21/11/2012 18:12:37
No me funciona de ese modo, y sin embargo tampoco da error...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Separar consulta unidades en líneas diferentes

Publicado por 2PL (461 intervenciones) el 21/11/2012 19:34:33
Perdona habia un error, corrige esto
for i=1 to Tabla1("Uds") y después del loop pon esto
tabla1.close
tabla2.close
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Separar consulta unidades en líneas diferentes

Publicado por inter (3 intervenciones) el 22/11/2012 09:52:51
Funciona!

Ahora intentaré adaptarlo a mi base de datos más compleja.
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar