VINCULO

CRISTIANOLIVE 07/12/2006 15:50:21
#188612
Estou utilizando um Banco de Dados Access em rede e está sendo utilizado por 5 micros, ao ser imputado os dados por um micro está tudo ok, se o outro micro for imputar dados, do micro anterior é substituído.
Estou tentando fazer o seguinte, manter este banco de dados na rede como está e em cada máquina criar um banco de dados com vínculo na rede, e o programa se refere ao banco de dados no micro, mas quando vou pedir para fazer consulta e exibida a mensagem de erro que a operação não é suportada neste tipo de objeto.
Como posso fazer para que isso funcione.
Obs.: Estou utilizando o Office 97.

Grato.
ALMARTI 07/12/2006 16:09:59
#188624
Que tipo de conexão esta usando? Como estão os bloqueios de acesso? Os ponteiros? Poste o código para avaliação.
CRISTIANOLIVE 07/12/2006 16:21:12
#188632
ALMARTI
Segue o código:

Private Sub Form_Load()
Set BancodeDados = OpenDatabase(App.Path & "\SOQ.MDB")
Set TBDados = BancodeDados.OpenRecordset("Dados")
Set TBRelatório = BancodeDados.OpenRecordset("Relatório")

[c]Private Sub mnuAlterar_Click()
TBRelatório.Index = "ESN1"
Search
If TBRelatório.NoMatch = True Then
cmdSalvar.Enabled = False
Else
cmdSalvar.Enabled = True
end if
End Sub


Não entendi sua pergunta bloqueios de acesso e os ponteiros?
CRISTIANOLIVE 13/12/2006 16:44:48
#189788
Mais ninguém?
Sinceramente ainda estou com este problema

Grato
LIONHEART 13/12/2006 16:54:45
#189793
o load não é o problema, o problema é que vc não está salvando efetivamente no banco as alterações.

Como vc está salvando os dados?
CRISTIANOLIVE 13/12/2006 17:09:23
#189798
No evento lost focus do campo linha de produção fiz assim:
Private Sub txtPack_LostFocus()
If txtPack.Text <> "" Then
cmdOk.Visible = True aqui é para salvar
cmdSalvar.Visible = False aqui para atualizar
txtESN1.SetFocus
CmdOK_Click
txtPack.Enabled = False
Else
MsgBox ("Por favor, insira sua linha")
txtPack.SetFocus
cmdLimpar.Visible = False
cmdOk.Visible = False
mnuSalvar.Enabled = False
cmdSalvar.Visible = True
End If
End Sub

o CmdOK_click faz a chamada abaixo:

Private Function AtualizaCampos()
TBRelatório.AddNew
TBRelatório("Usuário") = frmEntrada.lblRegistro.Caption
TBRelatório("Hora") = Time
TBRelatório("Data") = DTPicker1
TBRelatório("Qtd") = txtQtd
TBRelatório("Amostras") = txtSample
TBRelatório("Modelo") = txtModelo
TBRelatório("Cor") = txtCor
TBRelatório("Cliente") = txtCliente
End Function


O que acho estranho é que se eu estiver imputando os dados apenas de um micro tudo funciona normal, se eu começar a trabalhar com outras máquinas, os dados imputados por uma máquina é substituído por dados de outra máquina.

Se alguém souber por favor me ajude,

Desde já muito obrigado a todos pela ajuda
SPRITU 13/12/2006 18:02:50
#189814
se vc utilkizasse ADO seria melhor nao axa....

Tpw


  Dim Connection as New ADODB.Connection
Dim Recordset as New ADODB.Recordset

[c]Public Function StartUp()
Connection.Provider="Microsoft.Jet.OLEDB.4.0"
Connection.Open "\\microdarede\c\uscambal\soq.mdb"

With Recordset
.CursorLocation = adUseClient
.CursorType = adOpenDynamic
.LockType = adLockOptimistic
End With

recordset.open "Select * from blablablablabla"


Creo que isso acabaria com teu problema pois trabalho com access em rede com mais de 35 pcs aqui na Fabrica e nunca tive nenhum tipo de problema, detalhe.. to passando tudo pra Oracle hehehe
[/c]
CRISTIANOLIVE 14/12/2006 09:40:25
#189877
Obrigado SPRITU, vou tentar aqui depois posto se tiver dúvida, será que vc pode me dar algumas dicas de como migrar para o oracle?

Até mais....
CRISTIANOLIVE 14/12/2006 11:01:50
#189901
SPRITU, desculpa te encomodar

Qual biblioteca devo referenciar para que dê certo?

Está dando a seguinte mensagem:
Run-time error '-2147217843 (80040e4d)':
Não foi possível iniciar o aplicativo. O arquivo de informações do grupo de trabalho está faltando ou foi aberto em modo exclusivo por um outro usuário.

No Help notei que é a referência do ADO que está faltando, mas não consegui encontrar para ativá-la.

Outra dúvida, eu tenho duas tabelas para os dados, devo fazer então dois with para o recordset? ou um para cada?
ex.
with tbdados
.cursor....
end with

with tbrelatório
.cursor....
end with


Aguardo.

Muito obrigado.
CRISTIANOLIVE 15/12/2006 13:51:10
#190200
Estou tentando também fazer o seguinte:
Criei o BD em Access na rede e em cada micro fiz um BD mas utilizando o vínculo na rede, e notei que quando peço para fazer consulta dá o erro 3251 "operação não suportada para este tipo de objeto". pesquisei e notei que o erro ocorre pois o Vínculo permite somente gravação, e não para consulta, tem uma forma de burlar isso?

Obrigado
USUARIO.EXCLUIDOS 15/12/2006 14:03:49
#190202
Olá Cristiano,

Se vc está utilizando o Access 97, vc deve colocar no provider da conexão a seguinte linha:

'Para abertura de banco Access 97
conexao.Provider = "Microsoft.Jet.OLEDB.3.51"

'Para abertura de banco Access 2000 ou Superior
conexao'.Provider = "Microsoft.Jet.OLEDB.4.0"

Estou colocando essa informação pois vi no seu primeiro post que estava utilizando o Office 97 e o colega SPRITU colocou a ref do 4.0

Espero poder tê-lo ajudado.

Boa Sorte,

Daniel
Página 1 de 3 [28 registro(s)]
Tópico encerrado , respostas não são mais permitidas