new_rayderss Postado Outubro 23, 2008 Denunciar Share Postado Outubro 23, 2008 Eu preciso de uma explicação, porque já vi fazendo isso usando o ADO mas e com data é como? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 23, 2008 Denunciar Share Postado Outubro 23, 2008 hum... sei la... acho q você precisa de dois controles data.q informacoes você quer transferi?? todas?? e as duas tabela são iguais??imagino q você esteja comecando, então vo te passar um tutorial aqui q ajuda muito (inclusive ele ensina a fazer aquela busca q você queria no otro tópico, de um jeito diferente do q eu passei):http://www.macoratti.net/datactl.htme tb de uma olhada nesse site q tem mta coisa.http://www.macoratti.net/e quanto ao ado e data, recomendo você não usar controle vinculado não. tipo, não sua data e nem adodatacontrol. declara sempre o recordset e a conexao e faca por codigo. isso por motivos q você ve aqui: http://www.macoratti.net/vbc_vinc.htmmas é só sugestao, não quero da palpite no q você ta fazendo, é você q sabe. alem de q é interessante sim aprende a usar o controle data, mesmo q não seja a melhor opcao pra programar.hum, e tb prefira sempre ado ao dao, porque o dao já ta mais q ultrapassado.como usar ado sem o adodatacontrol tb é explicado aqui: http://www.macoratti.net/ado.htmfalou, qualquer duvida poste. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 24, 2008 Autor Denunciar Share Postado Outubro 24, 2008 Sim estou começando.. e preciso terminar esse projeto para passar de ano :P e vou dar uma olhada nos links.vou tentar explicar o que quero..nessa janela cadastro o cliente tudo corretamente.depois esses campos que estão em destaque com círculo, eu queria enviar eles para o cadastro do animal. Aí funcionaria assim depois que cadastrar o cliente salvando o cadastro com o guardar. iria aparecer uma mensagem do tipo "Deseja cadastrar os animais do cliente?" caso o usuario clique em sim vai para outro cadastro e fecha aquele. Caso clique em não ai permanece no cadastro do cliente. e depois só poderá add as informações destacadas usando o consultar. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 24, 2008 Denunciar Share Postado Outubro 24, 2008 depois esses campos que estão em destaque com círculo, eu queria enviar eles para o cadastro do animal.o legal é você gravar so o codigo na tabela do cachorro. você mostra o nome do cliente na tela, mas não precisa gravar. se quise grava não tem problema, apesar de q conceitualmente não é consistente, as vezes é util como atalho, não precisa ir na otra tabela pra ler o nome. mas ai tem q lembra de sempre atualizar as duas tabelas se um dia for mudar o nome.Aí funcionaria assim depois que cadastrar o cliente salvando o cadastro com o guardar. iria aparecer uma mensagem do tipo "Deseja cadastrar os animais do cliente?" caso o usuario clique em sim vai para outro cadastro e fecha aquele. Caso clique em não ai permanece no cadastro do cliente. e depois só poderá add as informações destacadas usando o consultar.o q você podia fazer era:1 - criar uma variavel global (no module) e, quando ele clicar em sim na pergunta "Deseja cadastrar os animais do cliente?", você alterava essa variavel. quando o formulario abrisse, você carregava dela. e a mesma coisa pro nome.2 - essa opcao seria muito melhor e mais pratica, quando ele clicasse sim, você simplesmente alterava os textbox do outro formulario direto. exemplo:r = MsgBox("Deseja cadastrar os animais do cliente?", vbYesNo + vbQuestion, "Pergunta")If r = vbYes Then frmAnimal.txtCodCliente.Text = Me.txtCodCliente.Text frmAnimal.txtNomeCliente.Text = Me.txtNomeCliente.TextEnd If[/code]ai você troca os nomes dos campos q eu pus de exemplo pelos nome dos seus campos de verdade.veja se é isso, qualquer coisa poste. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 25, 2008 Autor Denunciar Share Postado Outubro 25, 2008 funciono.. mas tenho umas dúvidas.eu fiz isso no cadastro do cliente, sendo que quando vou para o cadastro do animal (os campos estão bloqueados e só fica pronto para cadastrar quando clicar com o botão Novo. Porém quando uso método para mudar de cadastro ele fica bloqueado. Então o que faço para habilitar tb o cadastro do animal quando mudar de cadastro? Vou ter que fazer isso no cadastro do ou cliente do animal?Private Sub cmdNovo_Click() Data1Animal.Recordset.AddNew Ativar Me Verificar = 1 Fechado Me txtCodAnimal.Locked = True txtCodCli(2).Text = "" txtCodCli(2).Locked = True txtNome(1).Locked = True txtMatri.Text = "" cmdCancelar.Caption = "&Cancelar" cmdCancelar.ToolTipText = "Cancela a ação" cmdNovo.Enabled = False cmdGuardar.Enabled = True cmdEditar.Enabled = False cmdLocalizar.Enabled = False cmdExcluir.Enabled = False cmdCancelar.Enabled = True Data1Animal.Visible = False Call GerarNovoCodigo End Subessa é a codificação do botão novo do cadastro do animal, queria ativar isso tudo aí encima quando usar a mudança de cadastro. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 25, 2008 Denunciar Share Postado Outubro 25, 2008 é então... não entendi direito, mas acho q o q você teria q fazer pra facilita é copiar esse codigo aqui:txtCodAnimal.Locked = TruetxtCodCli(2).Text = ""txtCodCli(2).Locked = TruetxtNome(1).Locked = TruetxtMatri.Text = ""cmdCancelar.Caption = "&Cancelar"cmdCancelar.ToolTipText = "Cancela a ação"cmdNovo.Enabled = FalsecmdGuardar.Enabled = TruecmdEditar.Enabled = FalsecmdLocalizar.Enabled = FalsecmdExcluir.Enabled = FalsecmdCancelar.Enabled = TrueData1Animal.Visible = False[/code] em uma sub separada, chamada tipo Habilita ou qualquer coisa assim. ai quando precisar habilitar você chama ela (tb na inclusao quanto na alteracao). o q eu costumo fazer tb é usar uma sub só pra habilitar e desabilitar. ai você passa por parametro numa variavel boolean se você vai habilitar ou desabilita. exemplo: [code]Private Sub Habilita(sim As Boolean) - código -End Sub ai quando você for chamar você pode passar por parametro, tipo assim: Habilita True ou Habilita False ai esse codigo estaria dentro da sub, tipo assim: ...cmdNovo.Enabled = Not sim 'se sim vier como True, ele vai guardar False no enabled e viceversacmdGuardar.Enabled = simcmdEditar.Enabled = Not sim...[/code]seila, não sei se isso se encaxa no q você precisa fazer... mas se você tem q chamar o mesmo codigo pra habilitar tanto quando ele clica em novo, quando for pra altera o cadastro, ai é bom você por o codigo em uma sub separada. assim se você precisa alteera qualquer coisa no codigo, altera somente uma vez. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 26, 2008 Autor Denunciar Share Postado Outubro 26, 2008 Eu fiz esse método de habilitar de um modo um pouco diferente. Mais não é isso que me referi, é tipo quando gravo o cadastro do cliente ele pergunta para se quer cadastrar o animal, como te falei. Então eu digo sim ele leva as informações que quero para o cadastro do animal certo, como você me ensino. Porém não dá para cadastrar o animal, então eu quero saber como posso fazer isso, cadastrar o animal da mesma forma se eu tivesse usado o botão novo.entendeu? Agradeço a ajuda que você me deu até agora, mas peço mais essa força :) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 26, 2008 Denunciar Share Postado Outubro 26, 2008 hum entendi, é só chamar o evento do clique do botao. assim:cmdNovo_Click Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 26, 2008 Autor Denunciar Share Postado Outubro 26, 2008 não funciono. eu quero chamar o novo do cadastro do animal, entende. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jonathan Queiroz Postado Outubro 26, 2008 Denunciar Share Postado Outubro 26, 2008 Tenta fazer isso aqui:Public Sub cmdNovo_Click() Data1Animal.Recordset.AddNew Ativar Me Verificar = 1 Fechado Me txtCodAnimal.Locked = True txtCodCli(2).Text = "" txtCodCli(2).Locked = True txtNome(1).Locked = True txtMatri.Text = "" cmdCancelar.Caption = "&Cancelar" cmdCancelar.ToolTipText = "Cancela a ação" cmdNovo.Enabled = False cmdGuardar.Enabled = True cmdEditar.Enabled = False cmdLocalizar.Enabled = False cmdExcluir.Enabled = False cmdCancelar.Enabled = True Data1Animal.Visible = False Call GerarNovoCodigo End Sub E, ao invés de: cmdNovo_Click Utilize: frmAnimal.cmdNovo_Click Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 26, 2008 Denunciar Share Postado Outubro 26, 2008 E, ao invés de:cmdNovo_Click Utilize: frmAnimal.cmdNovo_Clickisso. é pra chamar o novo do cadastro de animais. ai pra ser daquele jeito quis dizer q era pra ser dentro do form dos animais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 26, 2008 Autor Denunciar Share Postado Outubro 26, 2008 não funciono gente. Compile error:Method or data member no foundnão tem que declara um variavel global, para indicar que quando vem do cadastro do cliente e quando não vai vir. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 26, 2008 Denunciar Share Postado Outubro 26, 2008 não tem que declara um variavel global, para indicar que quando vem do cadastro do cliente e quando não vai vir.é uma opcao, mas do jeito q o jonathan falou funciona sim. acho q você não viu no post dele, mas você tem q declarar o cmdNovo_Click como public pra poder funcionar.tipo onde deve estar declarado assim:Private Sub cmdNovo_Click() declare assim: Public Sub cmdNovo_Click()se não for publico você não consegue acessa de fora. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 26, 2008 Autor Denunciar Share Postado Outubro 26, 2008 (editado) É eu vi só que não notei o public :P mas ainda não está funcionando.Run-time error '3426This Action was cancelled by an associated object.da erro Data1Animal.Recordset.AddNew, na linha que tem isso.e agora? Editado Outubro 26, 2008 por new_rayderss Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 26, 2008 Denunciar Share Postado Outubro 26, 2008 da erro Data1Animal.Recordset.AddNew, na linha que tem isso.hum... nunca vi esse erro... mas imagino q teja acontecendo porque o form ainda não foi inicializado e o objeto Data não ta aberto ainda. não vai funcionar chamar o clique do botao antes do load. você ta chamando o form do animal como vbmodal?? se não tiver, tenta colocar a linha frmAnimal.cmdNovo_Click depois do load.ai se não adiantar vai ter q fazer isso q falou mesmo heheheenão tem que declara um variavel global, para indicar que quando vem do cadastro do cliente e quando não vai vir.mas não gosto tb de ficar criando variavel global pra uma coisa pequena dessas. porque tipo variavel global é pra ser usada por toda aplicacao. ai nesse caso ela sera usada so pra uma unica comunicacao entres dois forms. o q eu costumo fazer seria por um label no form do animal com Visible False. ai antes de abrir o form você editaria o label com alguma informacao pra você saber q você esta vindo do otro formulario.bom, ce q sabe como você quer fazer ai, qualquer duvida poste. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 26, 2008 Autor Denunciar Share Postado Outubro 26, 2008 (editado) Putz não consegui entender o que você quis dizer exatamente.. mais deixa eu explicar melhor... No cadastro do cliente depois de preencher tudo e clicar no guardar, ele vai perguntar.. \/Pergunta = MsgBox("Deseja cadastrar os animais do cliente?", vbYesNo + vbQuestion, "Pergunta") If Pergunta = vbYes Then frmAnimal.txtCodCli(2).Text = Me.txtCodCli.Text frmAnimal.txtNome(1).Text = Me.txtNome.Text Unload Me frmAnimal.Show frmAnimal.cmdNovo_Click Else Exit Sub End If Aí quando vai para o cadastro do animal, queria ativar isso \/ Public Sub cmdNovo_Click() 'If Pergunta = vbYes Then Data1Animal.Recordset.AddNew Ativar Me Verificar = 1 Fechado Me txtCodAnimal.Locked = True txtCodCli(2).Text = "" txtCodCli(2).Locked = True txtNome(1).Locked = True txtMatri.Text = "" cmdCancelar.Caption = "&Cancelar" cmdCancelar.ToolTipText = "Cancela a ação" cmdNovo.Enabled = False cmdGuardar.Enabled = True cmdEditar.Enabled = False cmdLocalizar.Enabled = False cmdExcluir.Enabled = False cmdCancelar.Enabled = True Data1Animal.Visible = False Call GerarNovoCodigo 'ElseIf cmdNovo_Click = True Then 'ElseIf cmdNovo_Click = True Then ' codificação 'End If End Subassim que eu estou fazendo, só que ele ta implicando com o data que vai add um novo registro no cadastro do animal. Os comentários foram tentativas que não resultou em nada :P entendeu? estava com cara que ia dar tudo certo e deu esse erro aí. E não entendi a estória do Label. Editado Outubro 26, 2008 por new_rayderss Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 26, 2008 Denunciar Share Postado Outubro 26, 2008 era isso q eu tava falando pra você fazer:frmAnimal.ShowfrmAnimal.cmdNovo_Click[/code] ou seja, você já ta fazendo e não ta adiantando. então... fala uma coisa, você já tentou fazer a insercao do animal sem estar vindo do form do cliente?? e esse codigo funcionou?? tipo qual o codigo q ta no form load do animal?? tipo, esse objeto data aponta pra algum tabela já no load ou ele ta vazio nessa hora?? porque essa mensagem de erro significa q ele ta vazio. não aponta pra nenhuma tabela ou query. (e esse é um dos motivos pelos qual é muito melhor trabalha com o RecordSet declarado com q com controles Data) se você ta setando a tabela tudo certinho, então o erro ocorre provavelmente porque você da chamando o novo logo abaxo do codigo q mostra o formulario, o q acaba sendo processado antes do load... quanto ao label, tava falando pra você cria um label qualquer no form do animal e dexar invisivel pro usuario não ver. ai no form do cliente, antes do frmAnimal.Show, você colocaria um codigo tipo: [code]frmAnimal.Label1.Caption = "x" pode por o q quiser no lugar do x. ai no load do animal você faria: If Label1.Caption = "x" Then 'Significa q ta vindo do cliente cmdNovo_ClickEnd If[/code] Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 27, 2008 Autor Denunciar Share Postado Outubro 27, 2008 (editado) então... fala uma coisa, você já tentou fazer a insercao do animal sem estar vindo do form do cliente?? e esse codigo funcionou??Sim, perfeitamente.tipo qual o codigo q ta no form load do animal?? tipo, esse objeto data aponta pra algum tabela já no load ou ele ta vazio nessa hora??Private Sub Form_Load() Data1Animal.DatabaseName = App.Path & "\BD\db2.mdb" Data1Animal.RecordSource = "Animais" Data1Animal.RecordsetType = 0 centraliza Me If lblCliChama.Caption = "x" Then 'Significa que esta vindo do cliente Call cmdNovo_Click End If End Sub além de estar aí no propriedades tb configurei. Quanto ao label troco direitinho o caption, porém não chamo a função. Pergunta = MsgBox("Deseja cadastrar os animais do cliente?", vbYesNo + vbQuestion, "Pergunta") If Pergunta = vbYes Then frmAnimal.txtCodCli(2).Text = Me.txtCodCli.Text frmAnimal.txtNome(1).Text = Me.txtNome.Text Unload Me frmAnimal.lblCliChama.Caption = "x" frmAnimal.Show Else Exit Sub End If===Kuroi to deixando o projeto anexado para você ver, se errei em alguma coisa. E quanto a conexão de banco de dados via código estou procurando não fazer assim, porque se não atrasaria o término. http://www.4shared.com/file/68536079/a0e15...Final_-_RD.html Editado Outubro 27, 2008 por new_rayderss Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 27, 2008 Denunciar Share Postado Outubro 27, 2008 Quanto ao label troco direitinho o caption, porém não chamo a função.é na verdade, não é pra ser no formload porque o load é chamado quando você edita o textbox, ele já carrega e o load é chamado antes do show.ponha o codigo no form activate. ponha no final de tudo no activate q deve funcionar.esse codigo aqui:If lblCliChama.Caption = "x" Then 'Significa que esta vindo do cliente Call cmdNovo_ClickEnd If[/code] ponha no final do activate do animal e pra evita de acontecer aquele erro de "This Action was cancelled by an associated object.", você tem q fechar o data do form do cliente. senao a conexao com o access não é perdida e vai dar erro porque ele vai tentar sair de um registro inexistente. por isso, adicione o seguinte codigo no unload do cliente: [code]Private Sub Form_Unload(Cancel As Integer) Data1.Recordset.Close Data1.Database.CloseEnd Subé bom fazer a mesma coisa no unload do animal. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 28, 2008 Autor Denunciar Share Postado Outubro 28, 2008 Não funciono cara :unsure: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Outubro 28, 2008 Denunciar Share Postado Outubro 28, 2008 (editado) aiaiai, ta foda...mas agora descobri, testei e ta funcionando, não tem mais erro.esquece o meu post de cima, o gde problema é q você tava editando o codigo e nome do cliente antes do addnew. e como os controles tão vinculados, ele achava q você já tava editando e não conseguia chamar o addnew, por isso a mensagem de erro.como resolver:no form do cliente, dexe apenas esse codigo:Pergunta = MsgBox("Deseja cadastrar os animais do cliente?", vbYesNo + vbQuestion, "Pergunta")If Pergunta = vbYes Then frmAnimal.lblCliChama.Caption = "x" frmAnimal.ShowElseExit SubEnd If[/code] entenda q você não pode editar o codigo e o nome antes de chamar o addnew. então tb não feche o formulario ainda. você vai fechar no form do animal. como você arruma os botoes no activate, então você tem q por esse codigo no final do activate depois de tudo: [code]If lblCliChama.Caption = "x" Then 'Significa que esta vindo do cliente cmdNovo_Click 'Aqui você chama o AddNew porque isso tem q ser feito ANTES de mudar os textbox 'Aqui altera os textbox txtCodCli(2).Text = frmCliente.txtCodCli.Text txtNome(1).Text = frmCliente.txtNome.Text Unload frmCliente 'Fecha o form do cliente q ta aberto.End IfEDITADO:inclusive no teste q fiz aqui no projeto q você mandou ta funcionando certinho, qualquer coisa me fala q eu te mando. Editado Outubro 28, 2008 por kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 new_rayderss Postado Outubro 28, 2008 Autor Denunciar Share Postado Outubro 28, 2008 Depois de uma verdadeira jornada.... FUNCIONOOooooooooooooooooooo!!!!!!!!! yahaaaaaaaaaa!!Obrigado Kuroi pela paciência e auxilio, e a você tb Jonathan Queiroz, por querer ajudar!! vlw pessoal!!!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
new_rayderss
Eu preciso de uma explicação, porque já vi fazendo isso usando o ADO mas e com data é como?
Link para o comentário
Compartilhar em outros sites
21 respostass a esta questão
Posts Recomendados
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.