MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


3 participantes

    [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela

    fieldNome
    fieldNome
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 113
    Registrado : 16/04/2012

    [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela Empty Reserva de carros - Consulta de acréscimo para guardar em uma tabela

    Mensagem  fieldNome 12/9/2012, 13:42

    Criei um formulário que possibilita o cliente escolher 3 carros e fazer a reserva.

    Criei uma consulta de acréscimo, porém, como os 3 carros são da mesma tabela, dá erro e ele não acrescenta.

    Alguém sabe como ajeitar isso?

    Quero que o nome do cliente e os 3 carros vá para a tabela reservas.

    obrigado pela atenção

    anexo

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela Empty Re: [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela

    Mensagem  Alexandre Neves 12/9/2012, 14:50

    Boa tarde, field
    Nomeie normalizadamente os controlos. Declare as variáveis.
    Elimine a consulta e substitua o código no módulo por este

    Option Compare Database
    Option Explicit

    Function ListaCarros(NomeControlo As String)
    Dim strNaoListar
    strNaoListar = ""
    Select Case NomeControlo
    Case "Carro1"
    If carro2 <> "" Then strNaoListar = "'" & carro2 & "'"
    If carro3 <> "" Then strNaoListar = strNaoListar & ",'" & carro3 & "'"
    If strNaoListar <> "" Then strNaoListar = " WHERE Veiculo NOT IN (" & strNaoListar & ")"
    Case "Carro2"
    If carro1 <> "" Then strNaoListar = "'" & carro1 & "'"
    If carro3 <> "" Then strNaoListar = strNaoListar & ",'" & carro3 & "'"
    If strNaoListar <> "" Then strNaoListar = " WHERE Veiculo NOT IN (" & strNaoListar & ")"
    Case "Carro3"
    If carro1 <> "" Then strNaoListar = "'" & carro1 & "'"
    If carro2 <> "" Then strNaoListar = strNaoListar & ",'" & carro2 & "'"
    If strNaoListar <> "" Then strNaoListar = " WHERE Veiculo NOT IN (" & strNaoListar & ")"
    End Select
    Me(NomeControlo).RowSource = "SELECT Veiculo FROM Veiculo" & strNaoListar & ";"

    End Function
    Private Sub carro1_AfterUpdate()
    Dim caminho As String

    If Me.carro1 = Me.carro2 Or Me.carro1 = Me.carro3 Then
    MsgBox "Esse carro já foi escolhido, não escolha carros repetidos", vbCritical
    Me.img1.Picture = ""
    Me.carro1 = Null

    Else

    caminho = CurrentProject.Path & "\Img\"

    Me.img1.Picture = caminho & Me.carro1 & ".bmp"
    End If

    End Sub

    Private Sub carro1_Enter()
    Call ListaCarros("Carro1")
    End Sub

    Private Sub carro2_AfterUpdate()
    Dim caminho As String

    If Me.carro2 = Me.carro1 Or Me.carro2 = Me.carro3 Then
    MsgBox "Esse carro já foi escolhido, não escolha carros repetidos", vbCritical
    Me.img2.Picture = ""
    Me.carro2 = Null

    Else


    caminho = CurrentProject.Path & "\Img\"

    Me.img2.Picture = caminho & Me.carro2 & ".bmp"
    End If

    End Sub

    Private Sub carro2_Enter()
    Call ListaCarros("Carro2")
    End Sub

    Private Sub carro3_AfterUpdate()
    Dim caminho As String
    If Me.carro3 = Me.carro1 Or Me.carro3 = Me.carro2 Then
    MsgBox "Esse carro já foi escolhido, não escolha carros repetidos", vbCritical
    Me.img3.Picture = ""
    Me.carro3 = Null

    Else

    caminho = CurrentProject.Path & "\Img\"

    Me.img3.Picture = caminho & Me.carro3 & ".bmp"
    End If

    End Sub

    Private Sub carro3_Enter()
    Call ListaCarros("Carro3")
    End Sub

    Private Sub Comando14_Click()
    Dim strCampos As String, strCarros As String
    If IsNull(cliente) Then
    MsgBox "Tem de escolher o cliente."
    Exit Sub
    ElseIf IsNull(carro1) And IsNull(carro2) And IsNull(carro3) Then
    MsgBox "Tem de escolher algum carro."
    Exit Sub
    Else
    strCampos = "": strCarros = ""
    If Not IsNull(carro1) Then
    strCampos = strCampos & ",carro1": strCarros = strCarros & ",'" & carro1 & "'"
    End If
    If Not IsNull(carro2) Then
    strCampos = strCampos & ",carro2": strCarros = strCarros & ",'" & carro2 & "'"
    End If
    If Not IsNull(carro3) Then
    strCampos = strCampos & ",carro3": strCarros = strCarros & ",'" & carro3 & "'"
    End If
    strCampos = Mid(strCampos, 2): strCarros = Mid(strCarros, 2)

    CurrentDb.Execute "INSERT INTO Reservas (Cliente," & strCampos & ") VALUES ('" & cliente & "'," & strCarros & ");"
    MsgBox "Carros reservados com sucesso"
    Me.cliente = Null: Me.carro1 = Null: Me.carro2 = Null: Me.carro3 = Null
    Me.img1.Picture = "": Me.img2.Picture = "": Me.img3.Picture = ""
    End If
    End Sub

    veja se as caixas de combinação, funcionam como pretende. coloquei para que cada uma não seleccione nenhum dos carros já seleccionados


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    Maicon
    Maicon
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 267
    Registrado : 08/09/2012

    [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela Empty Outra Opção

    Mensagem  Maicon 13/9/2012, 07:14

    Pode Fazer uma consulta sem base em nenhuma tbl , somente com base no form.

    pega o código abaixo abre tua consulta acréscimo coloca em modo de sql deleta tudo e cola o coódigo abaixo .depois vai em degsin e vê o que foi mudado.

    INSERT INTO Reservas ( Cliente, Carro1, Carro2, Carro3 )
    SELECT [Formulários]![Carros]![cliente] AS Cliente, [Formulários]![Carros]![carro1] AS Carro1, [Formulários]![Carros]![carro2] AS Carro2, [Formulários]![Carros]![carro3] AS Carro3;


    Abraços
    Maicon Fernandes


    fieldNome
    fieldNome
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 113
    Registrado : 16/04/2012

    [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela Empty Re: [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela

    Mensagem  fieldNome 13/9/2012, 14:27

    Obrigado, Alexandre Neves e Maicon.

    Quero agradecer aos dois, mas o do Maicon funcionou bem e o código está bem pequeno.

    Obrigado mesmooooooooooooooooooooooooooooooo aos dois.

    Conteúdo patrocinado


    [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela Empty Re: [Resolvido]Reserva de carros - Consulta de acréscimo para guardar em uma tabela

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/4/2024, 15:36