Ayuda con el uso de formularios para sacar valores de las tablas de una base de datos en Access

Hola query:
Estoy agobiadisimo.
No se muy bien explicarlo porque es algo complejo. Espero que me entiendas y puedas ayudarme.
Veras tengo una tabla de linea de pedido.cada linea, es decir cada articulo que pido, corresponde a un mes.
Hasta aquí bien. Ahora creo una tabla de referencias cruzadas, con cod_articulo, peso, descripción, precio... Como campos fila y mes como campo columna, siendo cantidad el valor a cruzar.
El problema es que tengo que sacar en un formulario las cantidades de cada articulo para cada mes de esta forma, es decir con la consulta de referencias cruzadas, y claro, para un mes que no se haya pedido ninguna de cantidad de un articulo aparece en esa celda como error ya que no existe ese registro.
No se como evitar que se me rellene la celda con ese error, y lo que necesito es que en esas celdas aparezca cero.
Ojala me puedas ayudar porque es muy importante.
Espero me hayas entendido.si necesitas alguna aclaración de mi duda no dudes en preguntármelo.
Espero impaciente. Gracias por tu tiempo.

1 respuesta

Respuesta
1
El caso que me comentas me ocurrió en una ocasión pero en lugar de ser con un formulario era con un informe, en el que tenía que obneter la cantidad de tipos de trabajo que se habían realizado en tres provincias, si había alguna provincia que no tenía ese tipo de trabajo me mostraba un mensaje de error.
La solución que le di al problema fue comprobar que columnas me devolvía la consulta. Como yo sabia de antemano cuantas columnas se tenían que imprimir en el informe, las que no encontraba en la consulta declaraba el controlsource de los controles como vacíos "". A continuación te muestro el código que utilice en el evento open del informe.
'***************************
Private Sub Report_Open(Cancel As Integer)
Dim rs As Recordset
Dim r As Field
' Hay 3 cuadros de texto que tienen el mismo nombre que las columnas que devuelve la consulta de origen
Me.CASTELLON.ControlSource = "" ' Cantidad de trabajos de un tipo determinado en CASTELLON
Me.VALENCIA.ControlSource = "" ' Cantidad de trabajos de un tipo determinado en VALENCIA
Me.ALICANTE.ControlSource = "" ' Cantidad de trabajos de un tipo determinado en ALICANTE
sSQL = OrigenInforme ' Variable global que contiene la sentencia SQL del Origen del Informe
Set rs = CurrentDb.OpenRecordset(sSQL, dbOpenSnapshot, dbSeeChanges) 'Obtengo el recordset asociado a la consulta
' Recorro todos los campos devueltos por la consulta
For Each r In rs.Fields
Select Case r.Name ' Si encuantro alguno de los 3 nombres que espero recibir
Case "CASTELLON", "ALICANTE", "VALENCIA":
Me(r.Name).ControlSource = r.Name
' Asignamos el nombre de la columna al controlsource del textbox que conincida con el nombre del campo
End Select
Next r
rs.Close ' Cerramos el recordset
Set rs = Nothing
end sub
Espero que te pueda servir o como mínimo ayudar en tu problema.
Hasta luego brucen80

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas