ERRO AO GRAVAR NO BANCO
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:
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
Ola Ronaldo,
Tenta assim!
sql = "update Computadores set Status = '1' where IP = '" & IPMac & "' "
sql = "update Clientes set Online = '0' where NomeCliente = '" & UsOnline & "'"
falow...
Emanuel
Tenta assim!
sql = "update Computadores set Status = '1' where IP = '" & IPMac & "' "
sql = "update Clientes set Online = '0' where NomeCliente = '" & UsOnline & "'"
falow...
Emanuel
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:
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
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!
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!
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!
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!
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:
o que acontece é o que eu descrevi logo acima se for local funciona em rede nao funciona onde esta o erro?
Veja imagem anexada:
Alguém sabe?
teu drive onde se encontra o banco de dados está compartilhado, tem permissão de gravação ????????
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?
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?
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:
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.
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.
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?
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?
Tópico encerrado , respostas não são mais permitidas