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

    [Resolvido]Ultimo Id Mysql

    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 250
    Registrado : 19/08/2010

    [Resolvido]Ultimo Id Mysql Empty [Resolvido]Ultimo Id Mysql

    Mensagem  marcelo3092 19/4/2019, 23:50

    Boa noite pessoal gostaria de vir aqui pedir mais uma vez a ajuda de vcs.
    Estou com um problema em buscar o Ultimo id do mysql, o Amigo Alexandre Neves desenvolveu um exemplo e funcionou perfeito.

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    ' código criado por Alexandre Neves, do Fórum MaximoAccess '
    ' utilize o código livremente mas mantenha os créditos '
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Call Conexao_Open("select * from tblpedidos") 'Abre a conexão para a tabela informada

    If rs.EOF Then
    NOVOID = 1

    Else

    NOVOID = rs("Cod_Pedido") + 1
    Me.Cod_Pedido = NOVOID
    'Call Updade_MySQL("select * from tblpedidos where Cod_Pedido=" & Me.Cod_Pedido, Me.Form.Name)
    End If

    rs.Close
    cn.Close


    Porem o que acontece ele pega o ultimo registro e coloca mais 1 problema;
    1- Se o campo estiver autoincrement e por ventura o ultimo id for excluido ele pega o penultimo e coloca +1 dando erro pois aquele ja foi excluido, e para tentar resolver eu tirei o autoincrement blz.
    2- tirando o autoincrement acontece que se na tabela não estiver registro ele n coloca o 1.
    qual é a ideia ele fazer uma verificação no campo ID e trazer o valor se o campo esta vazio retornando o valor faça uma condição onde ele for verdadeiro coloca 1 no campo id do formulario sendo faço dispara a condição depois do else pois nessa função ta la o novoid=1 mais não adiciona.

    alguem pode da uma maozinha
    marcos_novack
    marcos_novack
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 19/01/2011

    [Resolvido]Ultimo Id Mysql Empty Re: [Resolvido]Ultimo Id Mysql

    Mensagem  marcos_novack 24/4/2019, 02:21

    Boa noite

    Se vai fazer um UPDATE seguinifica que já existe um ID, não a necessidade de gerar novo ID, por isso erro, ou estou enganado?

    Gerar um novo ID só quando for um INSERT.

    Abraço
    Avelino João
    Avelino João
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 315
    Registrado : 10/03/2012

    [Resolvido]Ultimo Id Mysql Empty Re: [Resolvido]Ultimo Id Mysql

    Mensagem  Avelino João 26/4/2019, 20:58

    Boa Noite, eu uso dessa forma

    Código:
    Sub GerarCodigo()
    Dim NumCod As Integer
    10        Comando = "select idusuario from tblUsuarios order by idusuario Desc" 'seleciona todos os campos em ordem decrescente
    20        Call execut 'chama a função que criamos que irá executar o comando Sql acima
    30        If dataset.BOF = True Then ' isso que dizer, se não existirem resgistro na tabela Begin(inicio) sera igual a true
    40            NumCod = 1 ' e o numero de código irá ser = 1, pq é o primeiro registro
    50        Else
    60            NumCod = dataset("idusuario") + 1 'se não ele pega o ultimo codigo e adiciona 1 que sera o proximo
    70        End If
    End Sub

    Aqui onde eu crio o novo ID

    Código:
    Private Function buscaCampos() As clstblUsuarios
    10     Set buscaCampos = New clstblUsuarios
    20     Call GerarCodigo
    30         If IsNull(Me!id) Then
    40             id = NumCod
    50         End If
    60        buscaCampos.IdUsuario = id
    70        buscaCampos.usuario = tx1
    80        buscaCampos.Senha = Tx2
    90        buscaCampos.Bloqueado = selBloqueado
    100      buscaCampos.email1 = email
    End Function

    Conexão ao Mysql
    Código:
    Public Function execut()
            'inicializa o dataset, executa o comando sql passado através da variavél Comando e preenche o dataset na memória
           
    10      On Error GoTo execut_Error
     
    20          Call MySQL_Server    'Carrega parametros do servidor
           
       
    30      If Banco.State = 1 Then    'verificar o status do banco de dados. Se aberto fecha a conexão
    40            Banco.Close
    50        End If

    60        If dataset.State = 1 Then    'verificar o status do recordeset. Se aberto fecha a conexão
    70            dataset.Close
    80        End If
             
    "
    90      Banco.Open "Driver={MySQL ODBC 5.1 Driver};Server=" & MyslqServidor & ";Database=" & MyslqDatabase & ";User=" & MyslqUsuario & "; Password=" & MyslqSenha & "; Port=" & MyslqPorta & ";Option=3;"
    100    dataset.CursorLocation = adUseClient
    110    dataset.Open Comando, Banco, adOpenDynamic, adLockOptimistic
                     
     

    120      On Error GoTo 0
    130      Exit Function

    execut_Error:
     
    140      MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure execut of Módulo Parametros_MySQL_Conexao"
     
    End Function

    Código:
    Public Sub MySQL_Server()

    10      On Error GoTo MySQL_Server_Error

    20        MyslqServidor = DLookup("[Servidor]", "Servidor", "[ID]=1")    'Servidor Web
    30        MyslqUsuario = DLookup("[USServer]", "Servidor", "[ID]=1")    'Usuário do banco de dados
    40      MyslqSenha = DLookup("[PWServer]", "Servidor", "[ID]=1")    'Senha do banco de dados
    50        MyslqDatabase = DLookup("[DbServer]", "Servidor", "[ID]=1")    'Database
    60        MyslqPorta = DLookup("[Port]", "Servidor", "[ID]=1")    'Porta source
    70      On Error GoTo 0
    80      Exit Sub

    MySQL_Server_Error:

     MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure MySQL_Server of Módulo Parametros_MySQL_Conexao"

    End Sub


    .................................................................................
    Proaccess - Angola
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2892
    Registrado : 22/11/2016

    [Resolvido]Ultimo Id Mysql Empty Re: [Resolvido]Ultimo Id Mysql

    Mensagem  DamascenoJr. 17/1/2020, 03:06

    Marcelo, alguma das dicas ajudou? Se sim, e o resolvido do tópico?


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    marcelo3092
    marcelo3092
    Avançado
    Avançado

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 250
    Registrado : 19/08/2010

    [Resolvido]Ultimo Id Mysql Empty Re: [Resolvido]Ultimo Id Mysql

    Mensagem  marcelo3092 21/1/2020, 14:31

    Ola Pessoal Modifiquei um Pouco a Instrução para salvamento ficando

    If IsNull(idCandidato) Then
    DoCmd.Hourglass True
    DoCmd.OpenForm "frmWait", acNormal, , , , acWindowNormal
    DoEvents
    Call buscanovoid
    DoEvents
    Me.idCandidato = novoid
    DoEvents
    Call Add_MySQL("select * from tblcandidato", Me.Form.Name)
    DoEvents
    DoCmd.Hourglass False
    DoCmd.Close acForm, "frmWait", acSaveYes
    Me.cmdGravar.enabled = True
    Else

    Me.cmdGravar.enabled = True


    Agradeço a atenção de todos

      Data/hora atual: 24/7/2021, 07:58