Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) dados entre forms


tito13

Pergunta

boa tarde

parece facil, mas não estou identificando o erro

no form 2,3,4.... vao constar algumas inf do form 1 ai fiz a seguinte sub

Private Sub Form_Load()
    TxtNomeCliente.Text = FrmRecepcao.TxtNomeCliente.Text
    TxtProduto.Text = FrmRecepcao.TxtProduto.Text
End Sub
e me retorna erro dizendo que não pode executar por estar aberto o primeiro form e sinaliza nesta sub do primeiro form
Private Sub Form_Load()
Dim cod As Long
    cnnCetecInfServiços.CursorLocation = adUseClient
    rsSelecao.Open "Select * From Clientes", cnnOleopl, 1, 2 'erro aqui
    If rsSelecao.RecordCount = 0 Then
        cod = "00001"
    Else
        rsSelecao.MoveLast
        cod = rsSelecao("Numero_OS") + 1
    End If
    TxtNumOS.Text = cod
End Sub

Fechei todas as sub adicionar, excluir, alterar mas não funciona

parece facil..... mas preciso de ajuda

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

erro 3705

operaçao não permetida quando o objeto esta aberto

agora fiz a seguinte alteração

Private Sub Form_Load()
    TxtNumOS.Text = FrmRecepcao.TxtNumOS.Text
    TxtNomeCliente.Text = FrmRecepcao.TxtNomeCliente.Text
    TxtProduto.Text = FrmRecepcao.TxtProduto.Text
End Sub

inclui o NumOS e o nr passou para o form 2

Vou conferir o que mudei e tentar identificar meu erro

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

  • 0

não

na verdade ele levou para o form 2 o proximo numero que seria incluido no form 1

mas pelo menos nqo deu erro

Vou estudando

Minha ideia seria que quando eu abrisse por exemplo o cliente 5 em todos os forms , nos tres itens, deveria estar os dados do cliente 5

Ou que nos foms posteriores ao 1 eu digitasse o codigo do cliente e me retornasse os dados dele

aceito ideias

Editado por tito13
Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde

o que eu quero é que quando eu abro os forms 2,3,4... eles tragam alguns dados, tipo codigo, nome cliente, do form 1.

com a sub que coloquei ai acima ele ta me retornando o proximo codigo do cliente que vou adicionar no form 1

não sei se fui claro agora??

em resumo quero que todos os forms conversem.

Link para o comentário
Compartilhar em outros sites

  • 0

pode estar aberto

num terminal a recepcionista vai estar cadastro um cliente, noutro terminal um func vai estar acessando o form dois que pode ser do mesmo cliente e no terminal tres outro funcionario vai estar acessando o form 3 e utilizando tambem o mesmo cliente ou outro conforme a nacessidade.

são tres setores de uma empresa que acessam o mesmo programa no mesmo tempo no mesmo cliente ou não.

Link para o comentário
Compartilhar em outros sites

  • 0

tito, mas ententa assim, cada instancia do programa não tem comunicacao nenhuma com a outra (a não se q você programe essa comunicao de proposito, por exemplo, com winsock ou de qualquer outra forma), então se uma pessoa abre o programa num computador e abre um dos forms, no outro pc não tem a minima influencia.

levando isso em consideracao, o q você quer q aconteca quando ele abra o form 2 e o form 1 não esteja ainda aberto??

Link para o comentário
Compartilhar em outros sites

  • 0
Que o fom 2 tenha alguns dados do form 1
Ou que nos foms posteriores ao 1 eu digitasse o codigo do cliente e me retornasse os dados dele

aceito ideias

mas se eu entendi como funciona seu programa, o form 1 não tem dado nenhum, ele simplesmente tras os dados q estao no -->banco de dados.<--

e se eu entendi o q você ta querendo fazer, você não precisa acessar form 1 pra pegar os dados, você pode pegar direto do banco de dados assim como é feito dentro do form 1.

tentar pegar os dados a partir do form 1 so complica, atrapalha e ainda sobrecarrega mais a memoria.

se o cara digita o codigo do cliente no Text1 (no form 2 por exemplo), você simplesmente procura la:

sql = "Select * From Clientes Where codigo = " & Text1.Text
Set rs = cn.Execute(sql)

txtNomeCliente.Text = rs!NomeCliente[/code]

onde rs é o seu RecordSet e cn seu objeto Connection.

veja ai se não é isso.

fica bem mais facil, não tem necessidade de abrir o form 1.

Link para o comentário
Compartilhar em outros sites

  • 0

bom dia

retornando ao assunto

fiz assim no load do form

rsSelecao.Open "Select * From Clientes", cnnCetecInfServiços, 1, 2
    Do Until rsSelecao.EOF
        If Not IsNull(rsSelecao!Numero_OS) Then CboNumOS.AddItem rsSelecao!Numero_OS
    rsSelecao.MoveNext
    Loop
Saida:
    Set rsSelecao = Nothing
End Sub
funciona beleza, me retorna na combo todos os clientes cadastrados na tabela clientes agora eu quero que cliicando num destes clientes retornados na combo, os dados deles vao para dois textbox fiz assim
Private Sub CboNumOS_Click()
    rsSelecao.Open "select * from clientes where Numero_OS = " & CboNumOS & "", Conex, adOpenDynamic, adLockOptimistic
    If Not rsSelecao.EOF Then
        TxtNomeCliente.Text = rsSelecao!Nome
        TxtProduto.Text = rsSelecao!Produto
    Else
    MsgBox ("Não há clientes cadastrados!"), vbExclamation
    End If
    rsSelecao.Close
    
End Sub

está me retornando erro 3001 os argumentos são incorretos.......

onde estou errando???

Usei dicas de GabrielDB

Editado por Jonathan Queiroz
Adcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites

  • 0
beleza GabrielDB

o erro sinaliza nessa linha

rsSelecao.Open "select * from clientes where Numero_OS = " & CboNumOS & "", Conex, adOpenDynamic, adLockOptimistic

Eu tenho quase certeza que o erro é no "Conex", no meu sistema funciona assim:

Conex = é a minha conexão com o banco de dados, e ela está em um módulo.

Tenta no lugar do "Conex" colocar a sua conexão e posta ai.

Editado por gabrieldb
Link para o comentário
Compartilhar em outros sites

  • 0

Opa !

O tópico foi marcado como Resolvido.

Também é possível fazer isso manualmente. Basta modificar o título acrescentando um (Resolvido) (entre parêntesis e com um espaço separando o resto do título).

Para fazer essa modificação deve-se utilizar o modo de Edição Completa (Botão Editar do primeiro post do tópico --> Edição Completa)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...