MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Compartilhe

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 32
    Registrado : 28/08/2017

    [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Anderson Catarino em Sex 22 Set 2017, 17:58

    Boa tarde.
    Não sei se o tópico é repetitivo mas pesquisando sobre o tema não encontrei resposta.
    No meu formulário tenho uma caixa de combinação que escolhendo uma opção mostra os restantes dados em varias caixas de texto.
    Ex:
    comb1: ( 1 - João 2 - Manuel 3 - Rita)
    OPÇÃO 1
    txt1: Masculino
    txt2: 30
    txt3: Professor

    Mostrar a informação ate ai tudo bem, supomos que sempre que o João vai fazer uma compra ao selecionar o nome na comb1 já fica os dados preenchidos.
    O problema é o gravar informação para outra base de dados, supomos uma lista de compras. E se quiser fazer novo cliente? Como faço para escrever na comb1?

    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1402
    Registrado : 17/03/2011

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Cláudio Machado em Sex 22 Set 2017, 18:23

    Se no seu form de vendas você já têm os campos:

    txt1, txt2 e txt3

    inclua este código no Após Atualizar da sua Combo.

    Código:

    Me!txt1 = me.Comb1.Column(3)
    Me!txt2 = me.Comb1.Column(4)
    Me!txt3 = me.Comb1.Column(5)

    Lembrando que Column( ) é o numero da coluna dentro da consulta da sua combo.



    Para cadastrar um novo cliente quando não existir.
    Crie um formulário de cadastro de clientes: (Ex: frmClientes)

    Na propriedade "Se não estiver na lista" da sua comb1 coloque o código abaixo.

    Código:

    Response = acDataErrContinue  ' Inibe msg padrão do Access.
      If MsgBox("Cliente não cadastrado:  '" & NewData & "'" & vbCrLf & "Deseja Cadastrar?", 32 + vbYesNo) = 6 Then
          DoCmd.OpenForm "frmClientes", , , , acFormAdd, acDialog, NewData
          ' A execução deste código fica interrompida aqui até o
          ' fechamento do formulário frmClientes.
         
          Response = acDataErrAdded
      Else
          Response = acDataErrContinue
      End If


    No seu formulário frmClientes na propriedade "Ao Carregar", coloque este código.

    Código:

    If Not IsNull(Me.OpenArgs) Then
        Me!NomeCliente = UCase(Me.OpenArgs) NomeCliente é o nome da caixa de texto onde você digita o nome do Cliente
    End If


    Espero que ajude.
    No aguardo.


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 32
    Registrado : 28/08/2017

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Anderson Catarino em Seg 25 Set 2017, 11:00

    Bom dia. Obrigado pela resposta.
    Eu compreendi o que tu quiseste dizer, mas o meu maior problema é gravar os dados. Eu tinha antigamente em vez de combobox a puxar as informaçoes associadas para caixas de textos tinha so caixas de textos, contudo tem informaçoes que sao utilizadas todos os dias durante uma semana por isso que coloquei a combobox para poupar trabalho, contudo usando combobox ele já não me permite gravar os dados na base de dados.
    O que eu preciso é o codigo para gravar.

    Dim Cancel As Boolean
       If MsgBox("Deseja guardar novo registo?", vbYesNo + vbInformation, "Guardar") = vbYes Then
       CurrentDb.Execute "INSERT INTO CartaControlo (nop,maquina,Dataop,Produto,Cor,Denier,Tenacidade,denier1,denier2,denier3,denier4,denier5,denier6,obs1,Media/x,x/den,amplitude/x,r/den,Zona,forcarotura,Alongamento,tenacidade_real,obs2,Data,Assinatura) " & _
                         "VALUES ('" & Me.nop & "','" & Me.maquina & "','" & Me.Dataop & "','" & Me.Produto & "','" & Me.Cor & "','" & Me.Tenacidade & "','" & Me.Denier & "','" & Me.denier1 & "','" & Me.denier2 & "','" & Me.denier3 & "','" & Me.denier4 & "','" & Me.denier5 & "','" & Me.denier6 & "','" & Me.obs1 & "','" & Me.txtMedia & "','" & Me.x_den & "','" & Me.amplitude_x & "','" & Me.r_den & "','" & Me.Zona & "','" & Me.obs2 & "','" & Me.Data & "','" & Me.Assinatura & "')"
                          MsgBox "Registro guardado!", vbInformation, "Sistema Interno - LEP"
       Else
       Cancel = True
       End If

    Com esse codigo da-me erro
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9703
    Registrado : 04/11/2009

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  JPaulo em Seg 25 Set 2017, 11:47

    Em modelagem de dados, jamais poderá usar nos nomes dos campos, isto "Media/x" ou isto "x/den".

    Como está a usar, esses nomes devem estar dentro de parênteses retos;

    [Media/x],[x/den],[amplitude/x],[r/den]

    Além disso, tem de ter a mesma quantidade de campos no INSERT INTO

    Você aqui tem 25 campos

    (nop,maquina,Dataop,Produto,Cor,Denier,Tenacidade,denier1,denier2,denier3,denier4,denier5,denier6,obs1,[Media/x],[x/den],[amplitude/x],[r/den],Zona,forcarotura,Alongamento,tenacidade_real,obs2,Data,Assinatura)

    Aqui apenas tem 22 campos

    "VALUES ('" & Me.nop & "','" & Me.maquina & "','" & Me.Dataop & "','" & Me.Produto & "','" & Me.Cor & "','" & Me.Tenacidade & "','" & Me.Denier & "','" & Me.denier1 & "','" & Me.denier2 & "','" & Me.denier3 & "','" & Me.denier4 & "','" & Me.denier5 & "','" & Me.denier6 & "','" & Me.obs1 & "','" & Me.txtMedia & "','" & Me.x_den & "','" & Me.amplitude_x & "','" & Me.r_den & "','" & Me.Zona & "','" & Me.obs2 & "','" & Me.Data & "','" & Me.Assinatura & "')"


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    avatar
    Cláudio Machado
    VIP
    VIP

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1402
    Registrado : 17/03/2011

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Cláudio Machado em Seg 25 Set 2017, 13:26

    Bom dia.
    Como o Mestre disse acima...
    Verifique melhor seus códigos amigo...


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  [Você precisa estar registrado e conectado para ver este link.].
    Não esqueça de clicar no Joinha [Você precisa estar registrado e conectado para ver esta imagem.] para agradecer a dica que solucionou seu problema.

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 32
    Registrado : 28/08/2017

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Anderson Catarino em Seg 25 Set 2017, 14:12

    Obrigado JPaulo, como tinha acrescentado mais um campo e feito umas alterações, num lugar ficou com mais campos que outro. Faço gravar, recebo a informação que foi guardado, coloca me os campos enable que defini, depois ao utilizar os botoes de navegação para ver os registos guardados diz que tenho que preencher o campo nop da tabela carta de controlo, acho que deve ser algum problema relacionado com a combobox. Vou te deixar a minha base de dados, se tiveres tempo para ver o que tenho de errado agradecia, já fiz algumas alterações desde aquele vez que me ajudaste, eu ao fazer calcular ele calcula me a media, mas já não me calcula a amplitude.
    O Objetivo é qdo carregar no botao novo escolho na combobox uma ordem de produção e ele carrega os campos associados a ordem de produção (produto, cor, tenacidade, denier, data e maquina) ... preencho os valores das amostras e carrego calcular e ele calcula a media e x/media (media a dividir por denier), mas a amplitude_x (maior - menor das amostras não funciona) e como esse nao funciona o r_den (amplitude_x a dividir pelo denier tb nao funciona). carrego no botao gravar e não grava.
    Não sei se fui claro a explicar.
    Tenho uma caixa de listagem so para verificar se estava a gravar os dados na base de dados.
    O Formulario é o frmReg_Formulario, combobox carrega os dados da tabela OP e grava os resultados na CartaControlo

    Anexos
    CartaControlo2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (465 Kb) Baixado 9 vez(es)
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9703
    Registrado : 04/11/2009

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  JPaulo em Seg 25 Set 2017, 15:38

    No "frmReg_Formulario" a combo não está a carregar os dados da tabela OP

    O "frmReg_Formulario" já tem como origem a tabela "CartaControlo", e ainda em cima disso, você está a tentar dar um INSERT INTO.

    O exemplo é mesmo este que anexou ?



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 32
    Registrado : 28/08/2017

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Anderson Catarino em Ter 26 Set 2017, 10:14

    JPaulo o exemplo é esse mesmo, só que tinha a combo a carregar mal os dados, deveria carregar da tabela OP e estava a carregar da tabela CartaControlo, já alterei isso.
    A ideia é carregar uma OP (ordem de produção) da tabela OP e depois de fazer as contas gravar na tabela CartaControlo, como os campos relacionados com a OP estão desvinculadas por isso que estava a utilizar o INSERT INTO, mas provavelmente isso não faz sentido.
    Chega uma OP no inicio da semana e pode ser uma produção grande que leve a semana toda, por exemplo, e não queria estar todos os dias a escrever a informação relativamente a OP, a unica coisa que pode mudar é a maquina por isso não adicionei na tabela OP.
    Mas as vezes não tenho a OP mas sei os valores que tem que dar e queria gravar na mesma os dados e depois no botao editar, editava os dados que faltava, pois os dados importantes para a produção é a Media/X e a tenacidade real.
    Espero ter explicado bem.
    Já coloquei a combo a carregar os valores corretos.
    Anexos
    CartaControlo2.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (456 Kb) Baixado 2 vez(es)
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9703
    Registrado : 04/11/2009

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  JPaulo em Ter 26 Set 2017, 10:49

    Deve ser isto que você quer;

    Não necessita do INSERT INTO;

    Código:
    Private Sub cboNOP_AfterUpdate()
    On Error Resume Next
        Dim db As DAO.Database
        Dim rs As DAO.Recordset
        Dim strSQL As String
       
       
        cboNOP.SetFocus
        If cboNOP.Value > 0 Then
            strSQL = "SELECT * FROM OP WHERE N_OP = " & cboNOP.Column(0)
       
            Set db = CurrentDb
            Set rs = db.OpenRecordset(strSQL)
            If Not rs.BOF Then
                Me.nop = rs("N_OP")
                Me.Produto = rs("Produto")
                Me.Dataop = rs("Data")
                Me.Cor = rs("Cor")
                Me.Tenacidade = rs("Tenacidade")
                Me.Denier = rs("Denier")
            End If
            rs.Close
            Set rs = Nothing
            db.Close
            Set db = Nothing
        End If
    End Sub
    Anexos
    CartaControlo2_OLD.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (454 Kb) Baixado 7 vez(es)


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 32
    Registrado : 28/08/2017

    [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Anderson Catarino em Ter 26 Set 2017, 14:21

    É mesmo isso JPaulo. Obrigado pela enorme ajuda. Agora posso continuar a fazer alguns ajustes/implementações para avançar para o próximo passo. Obrigado.

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 32
    Registrado : 28/08/2017

    Re: [Resolvido]Caixa de combinação! Gravar dados na Base de Dados

    Mensagem  Anderson Catarino em Seg 30 Out 2017, 15:01

    Resolvido

      Data/hora atual: Qua 22 Nov 2017, 20:15