Jump to content
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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...

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.