Cara eu resolvi de uma forma meio louca, porém estou com um inconveniente.
Estou usando isso comando no evento lstFornecedor_DblClick:
Private Sub lstFornecedor_DblClick(Cancel As Integer)
On Error GoTo Err_lst_Fornecedor_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "frmFornecedor"
stFornSelect = Me![lstFornecedor]
'stLinkCriteria = "[txtNOME]=" & Me![lstFornecedor]
'stLinkCriteria = "[PKID_FORNECEDOR]=" & Chr(39) & Me![lstFornecedor] & Chr(39)
'stLinkCriteria = "[PKID_FORNECEDOR]=" & Me![lstFornecedor]
'DoCmd.OpenForm stDocName, , , stLinkCriteria
'DoCmd.Close acForm, stDocName
DoCmd.OpenForm stDocName, , , , acFormReadOnly, OpenArgs:=Me![lstFornecedor]
[Forms]![frmFornecedor].Recalc
[Forms]![frmFornecedor].Refresh
[Forms]![frmFornecedor].Requery
Exit_lst_Fornecedor_Click:
DoCmd.Close acForm, "frmPesqFornecedor"
Exit Sub
Err_lst_Fornecedor_Click:
MsgBox Err.Description
Resume Exit_lst_Fornecedor_Click
End Sub
E tenho isso no evento Form_Open do formulário de cadastro de Fornecedores
Private Sub Form_Open(Cancel As Integer)
'On Error GoTo Err_Comando83_Click
'DoCmd.GoToRecord , , acLast
'DoCmd.Restore
'Call AtualizaFormFornec
'Exit_Comando83_Click:
'Exit Sub
'Err_Comando83_Click:
'MsgBox Err.Description
'Resume Exit_Comando83_Click
On Error GoTo Trata_Erro
Dim rs As DAO.Recordset
Dim varCodCli As Variant
'Verifica se foi passado um código de cliente
varCodCli = Me.OpenArgs
If IsNull(varCodCli) Then Exit Sub
'Abre uma cópia do recordset origem do Formulário.
Set rs = Me.RecordsetClone
With rs
.FindFirst "PKID_Fornecedor = " & varCodCli
'Move para o registro porventura encontrado.
If Not .NoMatch Then
Me.Bookmark = rs.Bookmark
Me.Refresh
End If
End With
Fim:
rs.Close 'Libera memória.
Set rs = Nothing
Exit Sub
Trata_Erro:
MsgBox Err & vbCrLf & Err.Description, vbCritical, "Erro"
Resume Fim
End Sub
Acontece que isso só funciona se o formulário estiver fechando, se ele estiver carregado e eu clicar no botão de pesquisa novamente quando a pesquisa retornar o valor para o formulário de Fornecedores, os campos não são atualizados.
Alguma idéia ?