INFORMA?ÕES ENTRE FORMUL?RIOS

SUIDAW 30/01/2016 20:09:02
#456724
Galera eu sou novo no VBA, mas a duvida é o seguinte:
Eu tenho um formulário principal (UserForm2), com várias ComboBox que recebem a mesma informação.
Alem desse método para carregar as mesma informações na [Ô]List[Ô] da ComboBox
Private Sub UserForm_Initialize()
lin = 2
Do Until Sheets([Ô]Plan1[Ô]).Cells(lin, 8) = [Ô][Ô]
If Sheets([Ô]Plan1[Ô]).Cells(lin, 21) = [Ô]N[Ô] Or Sheets([Ô]Plan1[Ô]).Cells(lin, 21) = [Ô]S[Ô] Then
ComboBox1.AddItem Sheets([Ô]Plan1[Ô]).Cells(lin, 8).End(xlToRight).Value
End If
lin = lin + 1
Loop
End Sub

Eu coloquei um Case KeyCode para abrir um outro formulário (Userform3), onde contem essas mesmas informações da ComboBox, só que agora em uma Lixtbox.

Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case 119 [Ô]F8
UserForm3.Show
End Select
End Sub

A ListBox por sua vez está sincronizada com uma TextBox (Listname), que alterna o seu texto de acordo com que o usuário navega pela ListBox

Private Sub ListBox1_Change()
X = ListBox1.ListIndex
Listname.Text = ListBox1.List(X, 1)

End Sub

Eu adicionei um botão para que essa informação da TextBox (Listname), fosse para a [Ô]ULTIMA ComboBox ATIVA OU EM FOCO, do UserForm2[Ô], para que eu não tivesse que criar um formulário para cada ComboBox...
Só que eis a questão, eu não sei como fazer isso. Pelas pequisas que fiz acredito que o comando que devo utilizar é esse:
-(DoCmd.GoToRecord , , aclast)
mas não estou acertando a Sintaxe, alguém poderia me ajudar
SUIDAW 30/01/2016 22:15:38
#456746
Ninguém tem uma resposta para mim nem para dizer que sou burro ?
Ou para dizer que estou fazendo completamente errado!
KERPLUNK 30/01/2016 22:36:54
#456749
Olha, li 3 vezes e não consegui entender... Tenta explicar sem usar código. Diga o que você quer fazer mesmo.
SUIDAW 30/01/2016 23:25:01
#456751
Citação:

:
Olha, li 3 vezes e não consegui entender... Tenta explicar sem usar código. Diga o que você quer fazer mesmo.



Ta para ficar mais fácil vou reduzir o caminho ... Um formulário1 com varias ComboBox que precisão receber uma informação do mesma banco de dados... ao aperta F8 em cima de uma das combobox abre um outro formulário2 o mesmo formulário2 para todas combobox. Para facilitar a busca, visualmente falando... Esse outro fomulário2 vai ter um textbox e um botão que eu queria que ao clicar no botão ... ele reconhecesse de onde saiu o F8, ou qual era a ultima combobox que estava sendo utilizado... e transfira o texto da textbox para o texto da ultima combobox utilizada no formulário1...

Para facilitar ainda mais estou tentando desenvolver um livro de registros diários da contabilidade, a informação que a combobox vai receber são o nome das contas de um plano de contas...
KERPLUNK 31/01/2016 00:03:12
#456753
Ah, agora entendi. Bom, a única maneira de fazer isso é criar uma propriedade no form chamado(form2) que vai conter uma referência ao form1. Ao clicar no ok no form2, consulte essa propriedade e repasse o valor desejado.
SUIDAW 31/01/2016 00:43:29
#456757
Eu só não sei como fazer
estou estudando aqui esse comando
DoCmd.GoToRecord , , aclast

quero vê se sai alguma coisa

se você souber como a estrutura correta ou a sintaxe do código eu agradeço!
KERPLUNK 31/01/2016 00:56:10
#456759
Tomara que você não faça simplesmente [Ô]copiar e colar[Ô], mas que tente entender o que é. Seria mais ou menos assim:

private vFormAnterior As UserForm
Public Property Get FormAnterior() As UserForm
FormAnterior = vFormAnterior
End Property

Public Property Set FormAnterior(ByVal sNewValue As UserForm)
Set vFormAnterior = sNewValue
End Property


Private Sub cmdFinished_Click() [ô]o sub do seu botão [Ô]OK[Ô]
vFormAnterior.SUATEXTBOX.Text = [Ô]SEU VALOR DESEJADO[Ô]
End Sub

[ô]para chamar o segundo form
Dim frmSegundo as UserForm2
Set frmSegundo = UserForm2
UserForm2.FormAnterior = Me
UserForm2.Show
SUIDAW 31/01/2016 01:59:59
#456762
KERPLUNK vlw mais não foi por ai que consegui

esse é o código mais simples e resumido que funcionou perfeitamente

Private Sub Ok_Click()
Dim ctlcurrentcontrol As Control
Set ctlcurrentcontrol = UserForm2.ActiveControl [ô] identificar ou se referir ao controle que tem o foco
ctlcurrentcontrol.Text = UserForm3.Listname.Text
Unload Me
End Sub
Tópico encerrado , respostas não são mais permitidas