|
Executar el programa m5p3.exe per conèixer el seu comportament. Nota 1: en aquest cas el programa a l'executar-se no trobarà el fitxer de dades direc.mdb i no funcionarà correctament degut a que no s'executa el programa en el directori correcte. Per tal que no passi, executeu-lo des del directori VBCurs\VBHtml\vibam5\m5p3. Veure el llistat del codi del programa, m5p3. Executar Visual Basic per editar el projecte (acabat): m5p3.vbp. Nota 2: vegeu nota 1. Treball amb bases de dades AccessEl Visual Basic permet llegir bases de dades de tipus Paradox, dBase, Foxpro, Access, Btrieve i ODBC. També permet corregir, afegir i esborrar-ne registres de les bases de dades. El que no permet és crear-les.En aquesta activitat es crea un programa que interacciona amb una base de dades d'adreces Internet feta en Access, que solament té una classe de registres, amb els camps: ID, Connexió, Temes, Telèfons, Notes i Interès. En aquesta activitat fareu un formulari amb els botons de la figura per tal de conèixer una mica les utilitats del control de dades. El formulari final tindrà un aspecte semblant al següent i estarà connectat a la taula ADRECES d'una base de dades d'Access: Fase de disseny de la interfície d’usuariL'objecte fonamental utilitzat és el control de dades, que té la propietat DatabaseName, a la qual li assignareu el camí i el nom del fitxer de base de dades a utilitzar, i també té la propietat RecordSource a la qual li assignareu la taula (conjunt de registres) dins la base de dades que voleu utilitzar.Després heu de crear uns camps de text on introduireu les dades dels camps. Els quadres de text tenen la propietat DataSource que serveix per lligar el control de dades amb un camp del registre actiu de la taula associada (RecordSource). Tema: Data Control Subtema: tots els subtemes Cal dir que en el moment de carregar el programa, el control de dades obre la base de dades que té escrita en la propietat DatabaseName i llegeix el primer registre. Abans de crear un nou projecte heu de crear el directori C:\VBCurs\VBActivi\m5\p3 i copiar en ell la base de dades Access DIREC.MDB. Les propietats dels objectes d'aquest projecte que anomenareu m5p3 i que desareu al directori anterior són: Hi ha les etiquetes que van davant de les caixes de text que no les posem aquí, però podeu construir-les a partir del dibuix del formulari que hi ha al principi d'aquesta pràctica. Explicació de com es lliga el formulari i els seus objectes amb la base de dades: Per tal de connectar dades de la base de dades DIREC.MDB des del Visual Basic heu realitzat els passos següents:
Tema: Data Control Subtema: Binding a Control to a Data Control
En aquest projecte també heu afegit una llista combinada, que és un objecte que utilitzeu per presentar una llista de valors en la qual podeu escollir un d'ells. En aquest cas, podreu escollir el camp en què fareu cerca de dades. La propietat que fareu servir per emplenar la llista és: AddItem. Tema: Combo Box Subtema: tots els subtemes Fase de programació de respostes a eventsDeclaracions globalsDeclaracions de variables en l'àmbit del formulari: Const IDYES = 6 Const MB_OK = 0 Const MB_ICONSTOP = 16 Const MB_YESNO = 4 Aquestes constants s'utilitzen més avall Tema: MsgBox Subtema: MsgBox Mètodes associats a l'event Click En aquest projecte, els botons de comandament que hi apareixen mostren, en clicar-los, els registres: primer, últim, següent al de la pantalla i anterior al de la pantalla. Quan es canvia de registre es desen automàticament les dades de la pantalla. Per als botons Primer, Següent i Anterior: Sub cmdPrimer_Click() datInternet.Recordset.MoveFirst End Sub Sub cmdAnterior_Click() On Error GoTo ErrcmdAnterior datInternet.Recordset.MovePrevious Exit Sub ErrcmdAnterior: Resume Next End Sub Sub cmdSegüent_Click() On Error GoTo ErrcmdSegüent datInternet.Recordset.MoveNext Exit Sub ErrcmdSegüent: Resume Next End Sub Sub cmdÚltim_Click() datInternet.Recordset.MoveLast End Sub Tema: Data Access Subtema: veure propietats, Language, etc.. Per al botó Esborrar: Per esborrar un registre cal validar l'entrada. Sub cmdEsborrar_Click() On Error GoTo ErrcmdEsborrar Dim contestació As Integer Dim Missatge As String Missatge = "Voleu esborrar el registre que hi ha a la pantalla?" contestació = MsgBox(Missatge, MB_ICONSTOP + MB_YESNO) If contestació = IDYES Then datInternet.Recordset.Delete datInternet.Recordset.MoveNext If datInternet.Recordset.EOF Then datInternet.Recordset.MovePrevious End If End If ErrcmdEsborrar: MsgBox "Hi ha hagut un error", MB_OK End Sub Per al botó Nou: Heu de pensar que això crea de manera provisional un registre a la pantalla. Si no s'escriu res, en moure's a un altre registre no es grava un registre buit. Sub cmNou_Click() datInternet.Recordset.AddNew End Sub Per als botons Cercar i CercarSegüent: En la cerca de dades cal especificar un Criteri de cerca d'informació, que és una condició formada per un camp i la informació que voleu trobar en aquest camp. Aquestes dues coses han d'unir-se pels operadors relacionals Like i =. Els mètodes de cerca d'informació són FindFirst, FindNext, FindPrevious i FindLast. Per exemple: datInternet.RecordSet.FindFirst " [Connexió] = 'http' " fa que el registre actual sigui el primer registre que és igual a http. datInternet.RecordSet.FindNext " [Temes] Like '*UPC*' " cerca el següent registre que conté la subcadena UPC. El codi adient per fer aquestes funcions de cerca és el següent: Declaracions globals al formulari: Dim Criteri As String Procediments de caire general: Sub cmdCercar_Click() Dim Camp As String Camp = "["+ cboCamps.List(cboCamps.ListIndex)+"]" Criteri = Camp + " Like+ '*" + txtTextACercar + "*'" datInternet.Recordset.FindFirst Criteri End Sub Sub cmdCercarSegüent_Click() If Criteri <> "" Then datInternet.Recordset.FindNext Criteri End If End Sub Mètodes associats a l'event Load Sub Form_Load() cboCamps.AddItem "ID" cboCamps.AddItem "Adreça" cboCamps.AddItem "Connexió" cboCamps.AddItem "Temes" cboCamps.AddItem "Telèfon" cboCamps.AddItem "Notes" cboCamps.AddItem "Interès" cboCamps.ListIndex = 0 End Sub Aquest procediment emplena els valors de la llista desplegable en la qual s'escull el camp en el qual s'ha de fer la recerca d'un text. Mètodes associats a l'event Key_Down Sub txtTextACercar_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then cmdCercar_Click End Sub Aquest procediment és equivalent a prémer el botó Cercar. S'executa en validar el text a cercar un cop s'ha premut la tecla RETORN. Nota: existeixen més utilitats del control de dades però una que pot tenir especial interès és la de fer Control de Transaccions. Una transacció és una sèrie de canvis que fareu a la base de dades però amb la possibilitat de desfer-los. ExercicisPer enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m5\p3 )E1. A partir de la pràctica que acabeu de realitzar i utilitzant la base de dades COMARQUE.MDB, (Directori: C:\VBCurs\VBHtml\vibam5\m5p3) que conté una taula anomenada Característiques comarques per a presentar dades en un Data Control com en el formulari mostrat a continuació: Cal fer notar que l'últim quadre de text, "Densitat de població" no es correspon a cap camp concret de la taula de la base de dades. És un camp que l'heu de calcular a partir dels dos camps anteriors (densitat = habitants / extensió) i per actualitzar-lo, ho podeu fer utilitzant, per exemple, l'event change d'algun dels altres camps, per exemple el codi comarca. Cal enviar els següents fitxers:
Fitxer formulari m5p3e1.frm Fitxer executable m5p3e1.exe |