Boas para todos já passou um bom tempo sem vir aqui mas tenho a base de dados quase terminada. e o trabalho tanto da base de dados como profissionalmente não me têm permitido muito tempo de sobra, só passo por aqui em ultimo recurso pois penso que todos nós ou pelo menos eu tento na medida do possível apenas colocar aqui dúvidas para as quais eu não consegui pela extensa pesquisa e tentativas resolver. a questão é a seguinte eu pretendo que um utilizador ao dar entrada de material num formulário com o campo "Localização" este se introduzir uma localização errada em função da localização existente e em função da referência do fabricante este retorne um erro se a localização for incorrecta. o código que estou a usar funciona parcialmente e é o seguinte:
Private Sub Data_da_Recepção_Enter()
Dim NewLocation As String
Dim NewReference As String
Dim Description As String
Dim stLinkCriteria As String
Dim stLinkCriteria1 As String
Description = Me.Descrição.Value
NewLocation = Me.Localização.Value
NewReference = Me.CboReferência_do_Fabricante.Value
stLinkCriteria = "[Localização] = " & "'" & NewLocation & "'" _
& " AND [Referência do Fabricante] = " & "'" & NewReference & "'"
stLinkCriteria1 = "[Localização]"
If IsNull(DLookup("[Localização]", "Movimentos_de_Entrada", stLinkCriteria1)) Then
DoCmd.GoToControl "Data da Recepção"
ElseIf Me.Localização = DLookup("[Localização]", "Movimentos_de_Entrada", stLinkCriteria) Then
DoCmd.GoToControl "Data da Recepção"
Else
MsgBox " Esta Localização, " & NewLocation & ",Não é a Localização usual do produto ," & Description & "" _
& vbCr & vbCr & "Por favor escolha outra localização", vbInformation, "Entrada de Materiais"
DoCmd.GoToControl "Localização"
DoCmd.OpenForm "FormHistórico_De_Localizações1", acNormal
End If
quando a tabela está vazia utilizo o if Isnull funciona perfeitamente
se a localização introduzida pela primeira x for por exemplo localização = 1A ,Referência do fabricante=xpto
quando for novamente introduzida uma localização por exemplo 2A para a mesma referência do fabricante dá erro e aqui o código tambem funciona ok. se introduzir a localização correcta 1A com referência xpto novamente também funciona. agora o que não funciona é se a localização for por exemplo 2A, Referência do fabricante zpto. dá erro diz que a localização já existe quando não existe.
resumindo o que pretendo é uma coisa muito simples e explicando de uma forma mais simples eu quero poder dar entrada de batatas na localização 1A não conseguir dar entrada de batatas na localização 2A e dar entrada de laranjas na localização 2B e não conseguir dar entrada das laranjas na localização 1A se alguem me consegui-se dar umas luzes agradecia já tentei todo o tipo de dlookups com multiplo critério etc e não consigo satisfazer todas as situações. Desde já obrigado a todos.
Private Sub Data_da_Recepção_Enter()
Dim NewLocation As String
Dim NewReference As String
Dim Description As String
Dim stLinkCriteria As String
Dim stLinkCriteria1 As String
Description = Me.Descrição.Value
NewLocation = Me.Localização.Value
NewReference = Me.CboReferência_do_Fabricante.Value
stLinkCriteria = "[Localização] = " & "'" & NewLocation & "'" _
& " AND [Referência do Fabricante] = " & "'" & NewReference & "'"
stLinkCriteria1 = "[Localização]"
If IsNull(DLookup("[Localização]", "Movimentos_de_Entrada", stLinkCriteria1)) Then
DoCmd.GoToControl "Data da Recepção"
ElseIf Me.Localização = DLookup("[Localização]", "Movimentos_de_Entrada", stLinkCriteria) Then
DoCmd.GoToControl "Data da Recepção"
Else
MsgBox " Esta Localização, " & NewLocation & ",Não é a Localização usual do produto ," & Description & "" _
& vbCr & vbCr & "Por favor escolha outra localização", vbInformation, "Entrada de Materiais"
DoCmd.GoToControl "Localização"
DoCmd.OpenForm "FormHistórico_De_Localizações1", acNormal
End If
quando a tabela está vazia utilizo o if Isnull funciona perfeitamente
se a localização introduzida pela primeira x for por exemplo localização = 1A ,Referência do fabricante=xpto
quando for novamente introduzida uma localização por exemplo 2A para a mesma referência do fabricante dá erro e aqui o código tambem funciona ok. se introduzir a localização correcta 1A com referência xpto novamente também funciona. agora o que não funciona é se a localização for por exemplo 2A, Referência do fabricante zpto. dá erro diz que a localização já existe quando não existe.
resumindo o que pretendo é uma coisa muito simples e explicando de uma forma mais simples eu quero poder dar entrada de batatas na localização 1A não conseguir dar entrada de batatas na localização 2A e dar entrada de laranjas na localização 2B e não conseguir dar entrada das laranjas na localização 1A se alguem me consegui-se dar umas luzes agradecia já tentei todo o tipo de dlookups com multiplo critério etc e não consigo satisfazer todas as situações. Desde já obrigado a todos.