ACESSAR BANCO ACESS EM OUTRA MAQUINA
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
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
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 ?
Tem que ser caminho de rede:\\maquinaservidor\compartilhamento\banco.mdb
Coloque para ler de um arquivo .ini.
Saber ler .ini ?
Opa, boa ideia, faz tempo que não utilizo. Pode postar um exemplo?
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.....
muito cuidado qnd passa a ter multi acesso ao access.....
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.
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
leitura
txtServidor.Text = My.Settings.SERVER
escrita
My.Settings.Server = txtServidor.Text
NickoSoft tem exemplo disso?
exemplo pro seu caso não, apenas da forma q mostrei, armazenar informações e recupera-las
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....
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
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.
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...
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