Adicionar registos a uma tabela que n�o est� aberta

Ex : Quando se pretende adicionar um novo cliente � tabela de clientes quando se est� a introduzir uma nova factura sem ter de sair da "form" de facturas, conforme ilustrado seguidamente


 

ntinlist1.gif (3329 bytes)

ntinlist2.gif (2036 bytes)

ntinlist3.gif (5765 bytes)

Para criar um processo autom�tico de adicionar registos a uma tabela que n�o est� aberta, temos de criar um modulo que servir� para todos os casos (NotInListf)

Modulo

 

Function NotInListf(Dados As Variant, Resposta As Integer, Form As String)

Dim mens As String

 

mens = "'" & Dados & "' n�o existe. Deseja adicionar?"

If MsgBox(mens, vbYesNo + vbQuestion, "Novo registo") = vbNo Then

Resposta = acDataErrContinue

Else

DoCmd.OpenForm Form, , , , acFormAdd, acDialog, Dados

Resposta = acDataErrAdded

End If

End Function

 

Na Form de Facturas, no evento notinlist da Combo

Private Sub Nome_NotInList(NewData As String, Response As Integer)

Call NotInListf(NewData, Response, "nomes")

End Sub

 

Na form de clientes no evento FORM_LOAD

Private Sub Form_Load()

Dim args As Variant

Dim cc As String

args = Me.OpenArgs

 

If Not IsNull(args) And Len(args) > 0 Then

Me.Nome = args

End If

 

End Sub