Abrir formulario access desde vba con dos condiciones

Quiero abrir un formulario y que me muestre unos registros que cumplan una serie de requisitos.

Este es el código que tengo pero me da "Error no coinciden los tipos"

¿Me podríais echar una mano, por favor?:

Private Sub FECHA_FACTURA_AfterUpdate()
Dim Rst As Object
Dim busca_factura As String
Dim dame_NIF As Integer
Dim facturas_repetidas As Integer
Dim stLinkCriteria As String
Dim stOtraCriteria As String
Set Rst = CurrentDb.OpenRecordset("Select* from Facturas")

If Rst.EOF = False Then
facturas_repetidas = DCount("NUMERO_FACTURA", "Facturas", "NUMERO_FACTURA = Forms![ALTA DE FACTURAS]![NUMERO_FACTURA] And NIF = Forms![ALTA DE FACTURAS]![COMBO_INICIO] And FECHA_FACTURA = Forms![ALTA DE FACTURAS]![FECHA_FACTURA]")
MsgBox "¿hay más de una repetida?= " & facturas_repetidas
busca_factura = DLookup("NUMERO_FACTURA", "Facturas", "NUMERO_FACTURA = Forms![ALTA DE FACTURAS]![NUMERO_FACTURA] And NIF = Forms![ALTA DE FACTURAS]![COMBO_INICIO] And FECHA_FACTURA = Forms![ALTA DE FACTURAS]![FECHA_FACTURA]")
dame_NIF = DLookup("NIF", "Facturas", "NIF = Forms![ALTA DE FACTURAS]![COMBO_INICIO] ")
stLinkCriteria = "Id_Proveedores =" & dame_NIF
stOtraCriteria = "NUMERO_FACTURA =" & busca_factura

'DoCmd.OpenForm "DUPLICADA_HOJA_CONSULTA", acFormDS, , stLinkCriteria And stOtraCriteria, acFormReadOnly 

End If

Rst.Close
Set Rst = Nothing

End Sub

Respuesta
1

Además defines una variable Dame_Nif como integer. Luego dices que Dame_Nif =dlookup("NiF",....

Un valor Integer sólo llega a 32767, y aquí en españa el Nif se compone de 8 dígitos y una letra. Si no vas a usar la letra tendrías que definir la variable como long.

1 respuesta más de otro experto

Respuesta
1

¿Aunque hay mezcla de datos? Veo que no tiene encerrado entre almohadillas "#" los campos de fecha. Si va a utilizar Dcount() y Dlookup() ¿Para qué abre un recordset?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas