ACESSAR BANCO ACESS EM OUTRA MAQUINA

MAXGUIMEL 21/03/2016 21:09:59
#459614
Amigos boa noite, preciso de uma string de conexão para o banco acess 2007 que possa ser conectado também em outra maquina. Nunca trabalhei com access é a primeira vez. Sempre usei Mysql e la tudo de boa. Na maquina local esta funcionando perfeitamente. Mas na outra maquina não funciona. Gera erro ao ler banco de dados. Minha conexão inicial esta assim:

Public Sub OpenBanco()

Caminho = [Ô]H:\Programação\Programa Controle Fast\Banco\Banco_Fast.accdb[Ô]

[ô]AbreBanco.Open()

[ô]Abertura Oficial
Try
AbreBanco.ConnectionString = [Ô]Provider=Microsoft.Ace.Oledb.12.0; Data Source= [Ô] & Caminho
BancoConectado = True
Catch
BancoConectado = False
Exit Sub
End Try

End Sub
NILSONTRES 21/03/2016 23:37:07
#459615
Amigo, caminho físico para que um banco seja acessado via rede ? Não pode.
Tem que ser caminho de rede:\\maquinaservidor\compartilhamento\banco.mdb
Coloque para ler de um arquivo .ini.
Saber ler .ini ?
MAXGUIMEL 22/03/2016 00:58:04
#459616
Opa, boa ideia, faz tempo que não utilizo. Pode postar um exemplo?
NICKOSOFT 22/03/2016 06:39:43
#459618
vb.net deixou de lado o uso de arquivo INI, ainda pode ser usado, mas em propriedades do projeto agora existem as Settings q fazem esse serviço de forma bem mais simples....
muito cuidado qnd passa a ter multi acesso ao access.....
NILSONTRES 22/03/2016 08:54:43
#459627
Citação:

vb.net deixou de lado o uso de arquivo INI, ainda pode ser usado, mas em propriedades do projeto agora existem as Settings q fazem esse serviço de forma bem mais simples....


é que com um .ini vc pode alterar esse caminho quando quiser sem mexer no projeto.

Citação:

muito cuidado qnd passa a ter multi acesso ao access.....


Isso mesmo, não com só com access, mas qualquer banco, existem 1000 casos para vc ter problemas caso não tenha uma boa analise de projeto.
NICKOSOFT 22/03/2016 19:24:26
#459691
nilson eu uso a dica q dei e altero a qq momento, so uma tela de configuração no programa e tudo esta resolvido.....
leitura
txtServidor.Text = My.Settings.SERVER
escrita
My.Settings.Server = txtServidor.Text
MAXGUIMEL 22/03/2016 19:45:49
#459695
NickoSoft tem exemplo disso?
NICKOSOFT 23/03/2016 06:40:04
#459713
exemplo pro seu caso não, apenas da forma q mostrei, armazenar informações e recupera-las
  
Private Sub frmBancoDados_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
txtServidor.Text = My.Settings.SERVER
txtBD.Text = My.Settings.DATABASE
txtUsuarioBD.Text = My.Settings.USER
Dim wrapper As New clsBDSeguranca()
Dim plainText As String = wrapper.DecryptData(My.Settings.PASSWORD)
txtSenhaBD.Text = plainText
End Sub

Private Sub btnSalvar_Click(sender As System.Object, e As System.EventArgs) Handles btnSalvar.Click
My.Settings.Server = txtServidor.Text
My.Settings.DATABASE = txtBD.Text
My.Settings.USER = txtUsuarioBD.Text
Dim wrapper As New clsBDSeguranca()
Dim cipherText As String = wrapper.EncryptData(txtSenhaBD.Text)
My.Settings.PASSWORD = cipherText
My.Settings.Save()
MessageBox.Show([Ô]Configurações atualizadas[Ô] & vbCrLf & [Ô]O sistema será reiniciado[Ô])
Shell(Application.StartupPath & [Ô]\seibo.exe[Ô])
End
End Sub

no projeto precisa ir em propriedades, na guia settings e criar cada uma das propriedades, no caso server, database, user e password
na classe q manipula a base se usa da mesma forma....
  
Dim plainText As String = wrapper.DecryptData(My.Settings.PASSWORD)

Public Function BuscaString()
Dim ConnectionString As String
ConnectionString = [Ô]Server=[Ô] & My.Settings.SERVER & [Ô];User id=[Ô] & My.Settings.USER & [Ô];Password=[Ô] & plainText & [Ô];database=[Ô] & My.Settings.DATABASE
Return ConnectionString
End Function
NILSONTRES 23/03/2016 07:48:52
#459719
Citação:

nilson eu uso a dica q dei e altero a qq momento, so uma tela de configuração no programa e tudo esta resolvido.....
leitura


Perfeito, mas isso é para quem acha viável o acesso a tela de config da base no próprio sistema. No ini vc pode inclusive criptografar.
NICKOSOFT 23/03/2016 18:58:41
#459788
tenho dados criptografados ali.....
e usuário final não vai editar um arquivo ini na unha pra modificar, então vc precisa colocar uma tela q ele faça essa configuração de forma intuitiva tmb...
o uso pro usuário final é igual, cabe a vc usar ou não o recurso nativo do .net, muito mais simples com uma linha determinar a opção, e outra salva, contra algumas linhas extras pra tratar um arquivo ini...

mas vc pode ter arquivo q armazena essas configurações assim como arquivos ini sem telas, arquivos q guardam posição da tela, entre outras coisas automáticas....pro caso q ele quer de armazenar o caminho de uma base de dados, nada como usar um openfiledialog pra localizar o arquivo, e dai salvar no ini ou nos settings do programa....

mas como eu disse, so dei a opção de armazenar informações, não q seja a apropriada pro uso em questão....principalmente pelo tipo de base de dados...ainda em rede q não é a melhor forma assumir caminho mapeado da rede...
Tópico encerrado , respostas não são mais permitidas