s e 7 e n Posted March 12, 2006 at 12:49 PM Report #17908 Posted March 12, 2006 at 12:49 PM Boas Tou aqui a fazer um programa que la ligado a uma Base Dados. O VB ja consegue ir buscar os dados a BD, mas tive um problema. Sei que se deve usar o ADODC mas tava a dar erros, agora estou a usar o DATA e ja trabalha bem. Agora o problema é fazer pesquisas na BD... Andei a ver na net e vi um codigo com isso, mas não consigo por a trabalhar 😄 Encontrei este codigo: Private Sub cmdPesquisar_Click() Dim str As String str = InputBox("Que cidade deseja Procurar?") BaseDados.Recordset.Find &str If BaseDados.Recordset.EOF Then BaseDados.Recordset.MoveFirst MsgBox " Nao foi encontrado nenhuma cidade" End If End Sub Mas continuo a não consegui fazer a pesquisa. Que dizem???
David Pintassilgo Posted March 12, 2006 at 01:18 PM Report #17911 Posted March 12, 2006 at 01:18 PM Boas, não será o mesmo problema que eu tinha ontem? estás a introduzir o nome MESMO igual ao que está na BD? Alem disso, eu como desconhecia o comando find fiz de outra forma. Private Sub Command1_Click() Adodc1.Recordset.MoveFirst Do Until Adodc1.Recordset.EOF = True If LCase$(Text_designacao) Like "*" & LCase$(Text1) & "*" Then GoTo sair End If Adodc1.Recordset.MoveNext Loop sair: End Sub Onde text_designacao é um textbox que está no form (no meu caso visivel, mas pode-se meter invisivel) e text1 é outra textbox que está no form não fix input box, mas vai dar ao mesmo. cool stuffs to check. http://blog.zxcoders.com//
s e 7 e n Posted March 12, 2006 at 02:17 PM Author Report #17921 Posted March 12, 2006 at 02:17 PM Pois. Agora durante o almoço, tive a pensar nisso. 😄 Ainda me sentei num banco ao sol a pensar como fazer e lembrei-me duma coisa mais ou menos desse genero 🙂 Isso tambem serve e se não conseguir fazer da forma que eu queria fica assim. Mas eu tava a pensar em o VB ir a BD ver procurar, em vez de correr no programa todos os registos. EDIT: d_pintassilgo tu a usares o ADODC ao especiicares o caminho da BD como é que metes??? Eu tenho que escrever tudo, assim: " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\se7en\Ambiente de trabalho\[Project][VB6] DVD Collector\BDA\movies.mdb;Persist Security Info=False Enquanto com o DATA, basta por assim: .\BDA\movies.mdb
David Pintassilgo Posted March 12, 2006 at 04:35 PM Report #17938 Posted March 12, 2006 at 04:35 PM Eu no DATA já não uso. Agora e só adodc. Aquilo é automatico, mas vou lá ver o código... Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\David Pintassilgo\Desktop\Projecto HISC\bd1.mdb;Persist Security Info=False Axo que está igual ao teu. cool stuffs to check. http://blog.zxcoders.com//
s e 7 e n Posted March 12, 2006 at 06:03 PM Author Report #17967 Posted March 12, 2006 at 06:03 PM Pois, mas por exemplo se eu levar o Projecto para outro PC não deve de dar para aceder a BD. Porque esta escrito que o caminho é este: -> C:\Documents and Settings\se7en\Ambiente de trabalho E se levasse ao teu PC ja era: ->C:\Documents and Settings\David Pintassilgo\Desktop e assim o VB ja não conseguia aceder a BD, enquanto que com o BATA ao permitir so .\BDA\movies.mdb ja dá. 😄
David Pintassilgo Posted March 12, 2006 at 06:10 PM Report #17969 Posted March 12, 2006 at 06:10 PM Yá,...tb já vi isso, mas isso resolve-se no fim com o instaler do programa. (não sei ainda como, mas logo se ve) cool stuffs to check. http://blog.zxcoders.com//
s e 7 e n Posted March 12, 2006 at 08:36 PM Author Report #17983 Posted March 12, 2006 at 08:36 PM Novo problemas :? Os registos tem um numero, quando apago um registo que esteja no meio fica la um lugar vazio. Do genero, tenho [1] [2] [3] [4] [5] se apagar o [3] fico com [1] [2] [4] [5] Fz um codigo assim: Private Sub cmdEliminar_Click() Dim IDFILME As Integer BaseDados.Recordset.Delete BaseDados.Recordset.MovePrevious BaseDados.Recordset.Edit IDFILME = txtIDFilme.Text Do Until BaseDados.Recordset.EOF = True IDFILME = IDFILME + 1 BaseDados.Recordset.MoveNext txtIDFilme.Text = IDFILME Loop BaseDados.Recordset.Update BaseDados.Recordset.MoveFirst End Sub Mas da-me erro no "BaseDados.Recordset.MoveNext" que esta dentro do Do Until ... Loop O erro é: Run-Time Error '3426' Esta acção foi cancelada por um objecto associado. Alguem sabe o que podera ser???
David Pintassilgo Posted March 12, 2006 at 08:59 PM Report #17986 Posted March 12, 2006 at 08:59 PM Tu ao apagares o registo [3] ficas com [1][2][4][5] ou [1][2][][4][5] ? cool stuffs to check. http://blog.zxcoders.com//
s e 7 e n Posted March 12, 2006 at 09:04 PM Author Report #17987 Posted March 12, 2006 at 09:04 PM Fico com [1][2][4][5] Se abrir a BD no Access ta la: [1][2][4][5] e a linha do [3] desapareceu, foi apagada.
David Pintassilgo Posted March 12, 2006 at 09:13 PM Report #17992 Posted March 12, 2006 at 09:13 PM Então! se desaparece mesmo tá fixe! Não tens problema nenhum. Se fazes mesmo questão de "ocupar" todos os numeros, podes sempre fazer uma coisa: Deixas tar assim com está ao eliminar Ao introduzir, vai ter en atençao de usar nº que faltem, (tipo, uma pesquiza 1º pra ver se há algum espaco vazio) Ordenar. É capaz de haver alguma maneira mais simples de fazer isso, nao sei. É a unica forma que me vem á cabeça agora. cool stuffs to check. http://blog.zxcoders.com//
s e 7 e n Posted March 12, 2006 at 09:33 PM Author Report #17996 Posted March 12, 2006 at 09:33 PM Ja trabalha 😄 1º tinha a BD no Access a fazer no ID numeração Automatica, tirei isso e fiz umas alteraçoes no codigo. Private Sub cmdEliminar_Click() Dim IDFILME As Integer IDFILME = txtIDFilme.Text BaseDados.Recordset.Delete If BaseDados.Recordset.RecordCount = (IDFILME - 1) Then BaseDados.Recordset.MoveFirst Exit Sub Else BaseDados.Recordset.MoveNext BaseDados.Recordset.Edit Do While BaseDados.Recordset.EOF = False txtIDFilme.Text = IDFILME BaseDados.Recordset.MoveNext IDFILME = IDFILME + 1 Loop BaseDados.Recordset.MoveFirst End If Se reparares alterei a condição di IF porque me esta a chatear, mas vou tentar voltar para o AEF 🙂 Mas assim ja quando Elimino por exemplo o [3] ele altera o [4] [5] para [3] [4].
Tiago Salgado Posted March 13, 2006 at 10:00 AM Report #18050 Posted March 13, 2006 at 10:00 AM Pois, mas por exemplo se eu levar o Projecto para outro PC não deve de dar para aceder a BD. Porque esta escrito que o caminho é este: -> C:\Documents and Settings\se7en\Ambiente de trabalho E se levasse ao teu PC ja era: ->C:\Documents and Settings\David Pintassilgo\Desktop e assim o VB ja não conseguia aceder a BD, enquanto que com o BATA ao permitir so .\BDA\movies.mdb ja dá. 😉 Exactamente como disseste, não iria dar noutro PC devido ao caminho que está definido para carregar a BD, mas poderás dar a volta a isso usando o App.Path Exemplo: "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\bd1.mdb;Persist Security Info=False" Cumps
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now