Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
kazzx

BD não encontrada :X

Recommended Posts

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?

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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 :)

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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..

Share this post


Link to post
Share on other 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 :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.