ERRO AO GRAVAR NO BANCO

USUARIO.EXCLUIDOS 21/04/2007 17:11:21
#213151
RUN-TIMER ERROR "-2147467259 80004005 ":
da essa mensagem quando tento fazer update no banco.
é o seguinte quero gravar "0" quando o pc estiver desligado e "1" quando online, dai quando tento gravar na entrada do form e na saida acontece esse erro.
se souberem me explicar muito obrigado.

ficaria assim:

Private Sub Form_Load()
Dim sql, IPMac As String
IPMac = WinCliente.LocalIP
sql = "update Computadores set Status = '" & 1 & "' where IP = '" & IPMac & "' "
Set rs = banco.Execute(sql)
End Sub


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim sql As String
sql = "update Clientes set Online = " & 0 & " where NomeCliente = '" & UsOnline & "'"
Set rs = banco.Execute(sql)
End Sub

EMANUEL 21/04/2007 21:42:05
#213186
Ola Ronaldo,

Tenta assim!

sql = "update Computadores set Status = '1' where IP = '" & IPMac & "' "

sql = "update Clientes set Online = '0' where NomeCliente = '" & UsOnline & "'"

falow...
Emanuel

USUARIO.EXCLUIDOS 21/04/2007 22:14:23
#213187
Não funciona, e alem disso se eu abrir outro aplicativo utilizando a tabela ele fala que nao é possivel, pois o arquivo já esta aberto, como fazer o banco ficar multiusuario? é um sistema de controle de computadores(lan House)
estou abrindo o banco assim:

Sub Main()
abre_banco
frmCliente.Show
End Sub


Sub abre_banco()
Dim sql, conexao, caminho As String
On Error GoTo cnn:
caminho = ReadINI("Geral", "Caminho ", App.Path & "\Config.ini")
If caminho = "" Then
frmConfig.CommonDialogAbrirConexao.ShowOpen
caminho = frmConfig.CommonDialogAbrirConexao.FileName
conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & caminho & ";Persist Security Info=False"
banco.Open conexao
banco.CursorLocation = adUseClient
Call WriteINI("Geral", "Caminho", caminho, App.Path & "\Config.ini")
Else
conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & caminho & ";Persist Security Info=False"
banco.Open conexao
banco.CursorLocation = adUseClient

If banco.State < 1 Then
cnn:
MsgBox "Informe o Caminho do banco de dados no servidor"
frmConfig.CommonDialogAbrirConexao.ShowOpen
caminho = frmConfig.CommonDialogAbrirConexao.FileName
conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & caminho & ";Persist Security Info=False"
banco.Open conexao
banco.CursorLocation = adUseClient
Call WriteINI("Geral", "Caminho", caminho, App.Path & "\Config.ini")
End If
End If
End Sub

USUARIO.EXCLUIDOS 24/04/2007 15:28:09
#213567
Olha só se eu colocar o banco local tipo C:\Documents and Settings\GIGA1\Meus documentos\Sistema\Dados\Cadastro.mdb, ele funciona legal.

mas se eu colocar o endereço na rede seja \\server\Dados\Cadastro.mdb ou até mesmo mapeando uma unidade de rede tb não funciona.
alguém sabe me ajudar?
só uma dúvida:
eu estou fazendo as conexões do servidor e do cliente do mesmo modo que coloquei logo acima.
tá certo ou eu não preciso abrir o banco novamente pra conectar os clientes que nesse caso serão varios computadores que estarão gravando e buscando informações a cada minuto no banco. e ai como proceder me ajudem a esclarecer essa dúvida.

desde já muito obrigado!
RAFAEL.GRILLO 24/04/2007 16:51:27
#213576
Cara, quando vc faz insert, update ou delete vc não precisa executar o comando "set" na variável de recordset....

Vc está fazendo assim:
Set rs = banco.Execute(sql)

O correto é:
banco.Execute sql

E o seu comando de sql está incorreto, precisa usar os que o Emanuel te passou!
USUARIO.EXCLUIDOS 24/04/2007 17:26:10
#213583
Cara o problema não é esse, com ou sem set funciona normal,
o que acontece é o que eu descrevi logo acima se for local funciona em rede nao funciona onde esta o erro?
Veja imagem anexada:
USUARIO.EXCLUIDOS 26/04/2007 14:13:51
#213882
Alguém sabe?
USUARIO.EXCLUIDOS 26/04/2007 16:35:52
#213911
teu drive onde se encontra o banco de dados está compartilhado, tem permissão de gravação ????????
USUARIO.EXCLUIDOS 27/04/2007 12:47:36
#214048
sim.
já desinstalei o acess, e reinstalei e nada
me parece que é o banco que não está aceitando em rede, como liberar o banco acess pra funcionar na rede?
pois se eu abrir o banco no acess e tentar entrar no programa ele diz que o arquivo já esta em uso,já foi aberto, então como fazer pra ele aceitar mais de um usuario o acesse?

USUARIO.EXCLUIDOS 27/04/2007 13:02:25
#214050
RONALDO_MOURA, tenta fazer da seguinte forma, já que vc esta programando em VBA e a atualização sera feita no proprio banco você pode faser da seguitnte forma:

Dim rs as RecordSet
IPMac = WinCliente.LocalIP
DoCmd.RunSQL("update Computadores set Status = '" & 1 & "' where IP = '" & IPMac & "'")



DoCmd.RunSQL("update Clientes set Online = " & 0 & " where NomeCliente = '" & UsOnline & "'")


Tenta fazer desta forma e verá que dará certo. A ideia acima deve ser utilizada sempre que vc deseja atualizar e deletar registros da sua base através de VBA.

Qualquer dúvida posta ai ou manda um email!

Sds.
USUARIO.EXCLUIDOS 27/04/2007 20:31:03
#214146
estou programando em vb 6.0
não entemdi o commando Docmd.RunSql
eu tenho que declarar como?
....................................
o problema esta na hora que coloco tipo :
assim não funciona
conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & X:\LanHouse.mdb & ";Persist Security Info=False"
.....................................................
assim funciona normal:
conexao = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & C:\Documents and Settings\GIGA1\Meus documentos\Sistema\Dados\LanHouse.mdb & ";Persist Security Info=False"

já nem sei o que fazer pois antes funcionava agora não!
alguém sabe?
Página 1 de 2 [17 registro(s)]
Tópico encerrado , respostas não são mais permitidas