Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kazzx

BD não encontrada :X

Mensagens Recomendadas

kazzx

viva pessoal,

tenho alguma urgência em resolver este problema.

o seguinte código é bastante compreensível. após tentar gravar dados na BD, é me apresentada uma mensagem dizendo que o ficheiro não pode ser localizado, mas o ficheiro está na pasta onde tem o erro :x

 Try
            'Caminho de ligação à base de dados ..

            'Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
            'My.Computer.FileSystem.CurrentDirectory & "\BD.mdb"
            Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
            My.Computer.FileSystem.CurrentDirectory & "\Juventude MOA.mdb"

            'Instrução pretendida, que no caso é inserir dados nos campos da tabela ..
            Dim SQL As String = "INSERT INTO Inscrição Utente ([Nome Completo],[Data Nascimento], [Cód_Sexo], [Endereço correio electrónico], [Cód_Profissão], [Telemóvel], [Morada], [Localidade], [Código Postal], [CódPost1], [Data Inscrição]) values (?,?,?,?,?,?,?,?,?,?,?)"

            Using ConnectionState As New OleDb.OleDbConnection(conn)
                'Using ConnectionState As New OleDb.OleDbConnection(conn2   )
                Dim command As New OleDb.OleDbCommand(SQL, ConnectionState)

                'Estas instruções estão a dizer que os valores inseridos em cada controlo
                ' serão inseridos nos campos da tabela a eles atribuidos ..
                command.Parameters.Add("Nome Completo", OleDb.OleDbType.VarChar).Value = txtnome.Text
                command.Parameters.Add("Data Nascimento", OleDb.OleDbType.VarChar).Value = dtpdtnasc.Value
                command.Parameters.Add("Cód_Sexo", OleDb.OleDbType.VarChar).Value = cbsexo.Text
                command.Parameters.Add("Endereço correio electrónico", OleDb.OleDbType.VarChar).Value = txtmail.Text
                command.Parameters.Add("Cód_Profissão", OleDb.OleDbType.VarChar).Value = cbprofissao.Text
                command.Parameters.Add("Telemóvel", OleDb.OleDbType.VarChar).Value = txttelemovel.Text
                command.Parameters.Add("Morada", OleDb.OleDbType.VarChar).Value = txtmorada.Text
                command.Parameters.Add("Localidade", OleDb.OleDbType.VarChar).Value = cblocalidade.Text
                command.Parameters.Add("Código Postal", OleDb.OleDbType.VarChar).Value = cp1.Text
                command.Parameters.Add("CódPost1", OleDb.OleDbType.VarChar).Value = cp2.Text
                command.Parameters.Add("Data Inscrição", OleDb.OleDbType.VarChar).Value = dtinscreve.Value

                ConnectionState.Open()

                command.ExecuteNonQuery()

                'Mensagem de sucesso onde indica que os dados foram registados ..
                MsgBox("Dados registados com sucesso!", MsgBoxStyle.Information, "Sucesso ")

                Call limpa_controlos()

            End Using

        Catch ex As Exception

            'Se algum erro for detectado é mostrado um erro
            MsgBox("ERRO" & vbNewLine & ex.Message, MsgBoxStyle.Critical)

        End Try 

eu antes tinha o mesmo código para Access 2003, agora com o 2007 acontece isso :x

ajudas?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

andei a ver na net e consegui ver onde tinha o erro.

alterei esta linha:

 Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
            My.Computer.FileSystem.CurrentDirectory & "\Juventude MOA.mdb" 

para:

 Dim conn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Projecto\Sistema de Gerir Filas de Espera\Sistema de Gerir Filas de Espera\bin\Debug\datass.accdb;Persist Security Info=False;" 

alterei o Provider.

e tenho de alterar para

 My.Computer...... 

e por aí fora.

agora está-me a dar um erro de sintaxe na parte do

 INSERT INTO 

agora dá-me um erro de Sintase :x

ajudas?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Inscrição Utente é o nome da tabela ? Se sim tens de fazer:

"INSERT INTO [inscrição Utente]  ..."

Atenção que My.Computer.FileSystem.CurrentDirectory não é o mesmo que Application.StartupPath. Usa antes Application.StartupPath :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

ya, ja insere.

mas eu mudei o caminho e coloquei

 Dim conn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Sourcer=" & _
            Application.StartupPath & "\datass.accdb" 

e diz que não existe o ISAM ou algo assim.

está algo mal no caminho?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
kazzx

pah, para já consegui por a dar com isto:

 Dim conn As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
           My.Computer.FileSystem.CurrentDirectory & "\datass.accdb" 

e tenho sucesso..

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Verifica se a case de dados está mesmo onde estás a indicar Application.StartupPath & "\datass.accdb", porque My.Computer.FileSystem.CurrentDirectory pode funcionar hoje, e não funcionar mais tarde :)

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.