locked
Controles desconectados e INSERT INTO RRS feed

  • Pergunta

  • Tenho um form simples com controles desvinculados a tabela. Criei no evento click de um button do mesmo form a seguinte instrução:

    Dim strSql as String
    Dim NumOS, TpOS, FuncID as Integer
    Dim tData, hrTrab, hrDesl as Date

    'Passo os valores das caixas de textos para as variaveis
    NumOs = texto1.value
    TpOs = texto2.value
    FuncID = texto3.value
    tData = texto4.value
    hrTrab = texto5.value
    hrDesl = texto6.value

    'Declaro uma instrução insert na tabela tbProdutividade_MesAtul
    strSql = " INSERT INTO tbProdutividade_MesAtual " & _
                 " (prod_OS, prod_TpOS, func_ID, prod_Dt, prod_HrTrab, prod_HrDesl) VALUES " & _
                 " (" & NumOs & ", " & TpOs & ", " & FuncID & _
                 ", #" & tData & "#, #" & hrTrab & "#, #" & hrDesl & "# ) ;"

    'Executo a instrução SQL
    CurrentDB.Execute strSql


    Só que acontece o seguinte quando tento executar o SQL:
    "A tabela "tbProdutividade_MesAtual" foi  aberta em modo exclusivo por outro usuario,
    ou foi atraves da interface do usuario e não pode ser manipulada via programação."

    A principio pensei que fosse virus no meu pc, mas essa mensagem aparece em qualquer pc que eu coloque o arquivo .mdb!
    O que estou fazendo errado?? O Access não aceita campos desvinculados inserirem dados em uma tablela ?? Meu pc tem virus??

    Nota:
    O arquivo .mdb foi desenvolvido no Access2007.
    No mesmo form tem um controle de guia que na segunda aba contem um subForm que tem como fonte uma consulta a tabela tbProdutividade_MesAtual.

    Obrigado pela atenção
    Abraão Alves - Um eterno estudante
    sexta-feira, 5 de junho de 2009 12:55

Respostas

  • A propriedade "Proteções do registro" do formulário que é usado como subform deve ter sido definida como "Todos os registros"...

    Verifique e se for isso:

    1. Abra o formulário em modo estrutura
    2. Exiba as propriedades do formulário
    3. Selecione a aba "Dados"
    4. Mude a propriedade "Proteções do registro" para "Todos os registros" ou para "Registro editado"


    Espero ter ajudado!
    • Marcado como Resposta Abraão Alves segunda-feira, 8 de junho de 2009 14:47
    segunda-feira, 8 de junho de 2009 09:38

Todas as Respostas

  • Amigo,

    com certeza não é virus e a mensagem está correta quando diz que a referida table a "foi  aberta em modo exclusivo", e realmente foi, na segunda aba que contém um subForm que consulta a tabela...

    Para confirmar isso, faça um backup do arquivo inteiro, depois retire a consulta da outra aba e tente executar. Acho que vai funcionar...

    Funcionando, você poderá se focar em como resolver o problema de ter a consulta e o insert dentro do mesmo form...

    Espero ter ajudado!
    sexta-feira, 5 de junho de 2009 14:02
  • É isso ai Valmir!!!

    Deu certo, mas pq mesmo ???
    PQ Não posso ter uma consulta e um insert no mesmo form ????


    obrigado pela resposta.


    Abraão Alves - Um eterno estudante
    sexta-feira, 5 de junho de 2009 15:06
  • A propriedade "Proteções do registro" do formulário que é usado como subform deve ter sido definida como "Todos os registros"...

    Verifique e se for isso:

    1. Abra o formulário em modo estrutura
    2. Exiba as propriedades do formulário
    3. Selecione a aba "Dados"
    4. Mude a propriedade "Proteções do registro" para "Todos os registros" ou para "Registro editado"


    Espero ter ajudado!
    • Marcado como Resposta Abraão Alves segunda-feira, 8 de junho de 2009 14:47
    segunda-feira, 8 de junho de 2009 09:38
  • Abraão..

    só para complementar, na sua declaração:

    Dim NumOS, TpOS, FuncID as Integer


    somente a variável FuncID que está sendo declarada como Integer, as demais estão sendo declaradas como Variant.
    a maneira correta de declarar seria:

    Dim NumOS as Integer, TpOS as Integer, FuncID as Integer


    Somente uma dica.

    Abraços!
    Douglas Moura | Cuiabá-MT
    terça-feira, 16 de junho de 2009 23:00