AJUDA COM ACESSO APP.CONFIG VB .NET E ACCESS

HELIOPASSOS 08/04/2017 20:03:19
#473177
Boa noite.
Estou com um probleminha... Como faço para acessar um banco de dados access usando openfiledialog e mapeando no app.config????
No meu app.config eu estava usando:

<connectionStrings>
<add name=[Ô]ConexaoEstoque[Ô] providerName=[Ô]System.Data.OleDb[Ô] connectionString=[Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=C:\dados\Estoque.mdb[Ô]/>
</connectionStrings>

e eu gostaria de usar o OpenFileDialog para localizar o arquivo Estoque.MDB em um computador na rede e guardar o caminho e acessa-lo (localBanco = \\X:\xxxx\Estoque.mdb)
No OpenFileDialog localizaria o arquivo e no app.config ficaria tipo: [Ô]... Data Source = [Ô] & localBanco
Até agora foi fácil, agora como faço para mapear o banco no app.config? Desde já agradeço!


KERPLUNK 08/04/2017 21:36:12
#473179
Resposta curta: você não vai poder fazer isso. O arquivo MDB deve estar na mesma pasta da aplicação ou sub pasta da mesma.
NICKOSOFT 09/04/2017 07:30:22
#473183
algo assim pra salvar
My.Settings.Server = txtServidor.Text
My.Settings.DATABASE = txtBD.Text
pra ler
txtServidor.Text = My.Settings.SERVER
txtBD.Text = My.Settings.DATABASE

pra isso existir, tem q no projeto configurar as settings com os campo q necessita, nesse exemplo server e database....
so q realmente access na rede, foge disso.....
JOHNSTEVE 09/04/2017 11:01:32
#473184
Resposta escolhida
HELIOPASSOS, eu utilizo da seguinte forma.

Localizar o caminho do Banco.
  If txtcaminho.Text = [Ô][Ô] Then
MsgBox([Ô]Por favor localize o banco de dados.[Ô])
Exit Sub
End If
My.Settings.ConexaoBanco = txtcaminho.Text
My.Settings.Save()
My.Settings.Reload()
Me.Dispose()
frmLogin.ShowDialog()


Para salvar
  If txtcaminho.Text = [Ô][Ô] Then
MsgBox([Ô]Por favor localize o banco de dados.[Ô])
Exit Sub
End If
My.Settings.ConexaoBanco = txtcaminho.Text
My.Settings.Save()
My.Settings.Reload()
Me.Dispose()
frmLogin.ShowDialog()


HELIOPASSOS 09/04/2017 17:13:08
#473188
JohnSteve, essa rotina para obter a variável eu já fiz, já está ok....Já é o após... Estou usando app.config do vb .net para ler o banco de dados e está funcionando ok.
<connectionStrings>
<add name=[Ô]ConexaoEstoque[Ô] providerName=[Ô]System.Data.OleDb[Ô] connectionString=[Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=C:\dados\Estoque.mdb[Ô]/>
</connectionStrings
No meu micro, localmente o acesso é somente C:\dados\Estoque.mdb. e funciona legal. Mas aí, o banco de dados vai ficar em um computador e precisarei localizar o banco de dados, tudo bem, usei o OpenFileDialog e por exemplo, obtenho o seguinte endereço: \\Centro\Pastas\Dados\Estoque.mdb certo????? Como ficaria para eu utilizar o novo endereço no app.config? é esta a minha dúvida!, usar este novo local no app.config....
Ficou claro a minha dúvida???
Obrigado.
NICKOSOFT 10/04/2017 04:56:41
#473196
da mesma forma q faz no seu micro, o problema é querer usar access na rede.....
a rotina completa do save esta ali...qual o problema, não esta salvando?
JOHNSTEVE 10/04/2017 07:44:05
#473199
você tem q excluir essa string
  <connectionStrings>
<add name=[Ô]ConexaoEstoque[Ô] providerName=[Ô]System.Data.OleDb[Ô] connectionString=[Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=C:\dados\Estoque.mdb[Ô]/>
</connectionStrings


e criar la por exemplo > [Ô]ConexaoBanco[Ô] deixar do tipo string. somente isso
tanto a minha função quanto a do amigo NICKOSOFT resolve.

pois eu utilizo access em rede. tenho clientes q usam 5 micros. e apenas saldo o caminho da coneção, direcionando o Servidor onde esta o banco de dados Access.
HELIOPASSOS 10/04/2017 09:04:17
#473200
Olá, JOHNSTEVE, bom dia. Muito obrigado.

Tenho uma classe onde fazia a conexão e obtinha os dados:...
Public Function getConexaoDB() As OleDbConnection
Try
[txt-color=#e80000]--->[/txt-color] cn.ConnectionString = ConfigurationManager.ConnectionStrings([Ô]ConexaoEstoque[Ô]).ConnectionString
cn.Open()
Return cn
Catch ex As Exception
Throw ex
End Try
End Function

Terei que alterar a linha cn.ConnectionString? Como ficaria o comando?

Eu excluí conforme me indicou, mas.....
Alterei na classe getConexao para: cn.ConnectionString = My.Settings.ConexaoBanco e está me retornando o seguinte erro:
[Ô]O formato da cadeia de inicialização não está de acordo com a especificação iniciada no índice 0.[Ô]
HELIOPASSOS 10/04/2017 10:51:24
#473202
Pessoal. Problema resolvido.
na classe getconexao alterei para: --> cn.ConnectionString = [Ô]Provider=Microsoft.Jet.OleDb.4.0; Data Source=[Ô] & My.Settings.ConexaoBanco
Assim que eu percebi que estava passando parâmetros incompleto.... Erro de pressa em concluir, falta de atenção.... Então, fiz as alterações e agora está funcionando normalmente, inclusive na rede (6 computadores, 02 com win 10, 03 com win 8 e 01 com win 7.....
Obrigado.
Tópico encerrado , respostas não são mais permitidas