Usuário com melhor resposta
Controles desconectados e INSERT INTO

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 estudantesexta-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 estudantesexta-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á-MTterça-feira, 16 de junho de 2009 23:00