MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Insert Into

    Compartilhe

    rogeriorcds
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 26/06/2013

    [Resolvido]Insert Into

    Mensagem  rogeriorcds em Qua 03 Fev 2016, 13:08

    Mestres, estou com uma problema que eta me tirando o sono, porque eu não consigo gravar os dados em uma tabela com este código?
    eu já comparei todos os campos e estão todos corretos.

    Private Sub btnsalvar_Click()
    Dim I As Integer
    Dim total As String
    Dim Strtotal As String
    Dim Strkmini As String
    Dim intervalo As String
    Dim mts As String
    Dim tabelalan As String
    If (txtdata) Then
    If Not IsNull(txttotal) And Not IsNull(txtequipe) Then
    mts = 1
    tabelalan = (txtatividade)
    intervalo = (txttotal)
    For I = 1 To intervalo
    Strkmini = Me.txtkmini
    Strtotal = (I + Strkmini - "1")
    CurrentDb.Execute "INSERT INTO " & tabelalan & " (data,atividade,kmini,equipe,obs,usuario,dataalter,mts)" _
    & " Values(#" & Format(txtdata, "mm/dd/yyyy") & "#, """ & Me.txtatividade & """, """ & Strtotal & """, """ & Me.txtequipe & """, """ & Me.txtobs & """, """ & Me.txtusuario & """, #" & Format(txtdataalter, "mm/dd/yyyy") & "#, """ & mts & """);"
    Next I
    Else
    MsgBox "Informe todos os dados da Produção.", vbExclamation, "Produção"
    End If
    End If
    End sub

    Desde já agradeço a ajuda.

    rogeriorcds
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 26/06/2013

    Re: [Resolvido]Insert Into

    Mensagem  rogeriorcds em Qua 03 Fev 2016, 14:09

    Silvio,

    Muito obrigado pela resposta, mas acho que consegui achar o problema.
    Acontece assim, eu tenho uma rotina que cria a tabela pra mim conforme os campos que tenho no meu formulário, ao criar esta tabela o campo texto fica com a opção de "Permitir comprimento zero" e "Compactação Unicode" ele atribui não e precisaria estar sim para ele aceitar a gravação.
    como eu consigo fazer esta alteração no código vba?

    With NovaTbl
    ' Vamos criar os campos.
    Set fld(0) = .CreateField("Codlancamento", dbLong)
    fld(0).Attributes = dbAutoIncrField 'Autonumeração.
    Set fld(1) = .CreateField("data", dbDate, Cool
    Set fld(2) = .CreateField("Atividade", dbText, 50)
    Set fld(3) = .CreateField("kmini", dbLong, 5)
    Set fld(4) = .CreateField("equipe", dbText, 30)
    Set fld(5) = .CreateField("obs", dbText, 100)
    Set fld(6) = .CreateField("usuario", dbText, 15)
    Set fld(7) = .CreateField("dataalter", dbDate, Cool
    Set fld(Cool = .CreateField("mts", dbLong, 5)
    'Adiciona os campos criados à tabela.
    For I = 0 To UBound(fld())
    .Fields.Append fld(I)
    .Fields.Refresh

    Muito Obrigado.

    rogeriorcds
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 26/06/2013

    Re: [Resolvido]Insert Into

    Mensagem  rogeriorcds em Qui 04 Fev 2016, 11:03

    Galera,

    Consegui resolver usando a instrução " & tabelalan & "

    CurrentDb.Execute "INSERT INTO " & tabelalan & " (data,atividade,kmini,equipe,obs,usuario,dataalter,mts)" _

    rogeriorcds
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 64
    Registrado : 26/06/2013

    Re: [Resolvido]Insert Into

    Mensagem  rogeriorcds em Qui 04 Fev 2016, 11:10

    Senhores, as tabelas tem que estar com o campo permitir comprimento zero.

    Conforme instrução a seguir:

    With NovaTbl
    ' Vamos criar os campos.
    Set fld(0) = .CreateField("Codlancamento", dbLong)
    fld(0).Attributes = dbAutoIncrField 'Autonumeração.
    Set fld(1) = .CreateField("data", dbDate, Cool
    Set fld(2) = .CreateField("Atividade", dbText, 50)
    fld(2).AllowZeroLength = True

      Data/hora atual: Dom 04 Dez 2016, 01:57