Documente Academic
Documente Profesional
Documente Cultură
GENERALITÃTI
1
Barele de instrumente ne permit sa comutam rapid intre
proiectarea unui raport, a unui formular sau a unei tabele, si
vizualizarea rezultatelor.
Puten sa creãm macro-uri pentru a realiza operatii repetitive, sau
sa asocien actiuni a unor butoane pe care le plasam in cadrul
formularelor.
Access ofera, de asemenea, unele facilitati deosebite cum ar fi
integritatea referentialã (controleazã modul in care sunt
mentinute inregistrarile din tabele asociate; aceasta trasatura
previne stergerea unei inregistrari din tabela primara daca aceasta
este conectata la o unregistrare din tabela asociata), auto-asociere
(self-join= reprezinta capacitatea de a cãuta date dintr-un camp in
campul cheie al aceleiasi tabele), precum si expresii si rutine de
validare complexe.
2
“ EVIDENTA TRENURILOR DE CÃLÃTORI INTR-O AGENTIE FEROVIARÃ ”
CAPITOLUL I
PREZENTAREA APLICATIEI
3
observa unele aspecte pe care proiectantul nu le-a putut
anticipa in faza de concepere a aplicatiei.
Exploatarea acestui produs nu necesitã cunostinte anterioare de
informaticã, este uşoarã şi foarte aproape de experienta zilnicã
de panã acum a unui operator CFR. Ceea ce este nou, este
simplitatea şi uşurinta cu care se rezolvã totul.
Cerinte minime de instalare:
- sistem de operare Windows ’98 sau o versiune mai noua;
- programul Microsoft Access din pachetul Office ’97 sau mai
nou;
Recomandare: Pachetul Office XP.
4
1.2 Diagrama entitãte – asociatie a bazei de date
5
Figura 1. Diagrama entitãte – asociatie pentru baza de
date „Mersul Trenurilor”.
6
1.3 Modelul matematic al bazei de date (MMED)
Localitãti:
ID ↔ NAT(99999)
Localitãti ↔ CHAR(50), total
C1: Key „Localitãti” – fãrã duplicate;
7
Trenuri
ID ↔ NAT(9999)
Nr ↔ NAT(9999)
Ruta ↔ CHAR(50), total
Tip ↔ CHAR(10),total
C2: Key „Nr” – fãrã duplicate;
8
Supliment
ID ↔ NAT(9)
Tip ↔ CHAR(10),total
PretS ↔ NAT(9999999),total
C5: Key „Tip” – fãrã duplicate;
9
Tichet
ID ↔ NAT(99)
Interval ↔ NAT(9999),total
PretT ↔ NAT(9999999),total
C6: Key „Interval” – fãrã duplicate;
Tipuri
ID ↔ NAT(9)
Tip ↔ CHAR(10), total
C7: Key „Tip” – fãrã duplicate;
10
Altele
ID ↔ NAT(9)
CII ↔NAT(9), total
ID Localitate
1 Bucureşti Nord
2 Bucureşti Obor
11
Tipuri(ID, Tip) ø ı— Tipuri;
ID Tip
1 Personal
2 Accelerat
ID Tip PretS
1 Personal 0
2 Accelerat 115
ø ı— Tip;
Tip ID(Tip);
ID Nr Ruta Tip
1 1981 Bucureşti Obor - Mangalia Accelerat
2 858 Feteşti - Constanta Rapid
ø ı— Nr;
ø ı— Ruta;
Tip ID(Tip);
]
Mers(ID, Nr tren, Ora, Km, Localitate);
12
1 1981 Bucureşti Obor 00:30 0
2 1981 Mangalia 02:09 126
Localitãti ID(Localitãti);
Nr tren ID(Trenuri);
ø ı— Ora;
CAPITOLUL II
13
- butonul „Bilete”
14
Prin apãsarea butonului marcat prin litera „A” va apãrea o
micã ferastrã din care vom alege localitatea de plecare.
La efectuarea acestei operatii in tabelã va apãrea lista de
trenuri ce opresc in localitatea respectivã.
Prin apãsarea butonului marcat prin litera „B”, care aste de
fapt semnul „+”, va apare o altã ferastrã ce va contine
intrega rutã cat şi tipul trenului respectiv.
Din aceastã fereastrã va trebui sã retinem neaparat numãrul
trenului dorit deoarece vom avea nevoie in fereastra
ulterioarã.
La inchiderea acestei ferestre, automat, programul va
deschide fereastra „Bilete”, care mai poate fi deschisã prin
apãsarea tastei „B”, sau dand click pe butonul „Bilete” din
meniu. Va apãrea o fereastrã impartitã in doua. Acesta aratã
astfel:
15
Exemplul 2. Videoformatul „Trenuri”
16
Implicit, programul va afişa in ce interval de distantã se
incadreazã cãlãtoria precum şi pretul tichetului.
Pretul rezultat este unul brut, adicã este pentru clasa a-II-a,
fãrã loc şi fãrã reducere. Acestea pot fi inserate prin bifarea
cãsutelor din dreptul fiecãreia apoi reefectuand operatia de
calcul total.
17
In aceastã fereastrã vom putea sã modificãm sau sã adãugãm
localitãti, sã reactualizãm procentul pentru suplimentul de
vitezã pentru trenurile: accelerat, rapid, intercity şi expres,
pretul pe loc cat şi pretul pe intervalele kilometrice definite.
Intervalele sunt :
1. 0 – 10
2. 11 – 20
18
3. 21 – 30
4. 31 – 40
5. 41 – 50
6. 51 – 60
7. 61 – 70
8. 71 – 80
9. 81 – 90
10. 91 – 100
11. 101 – 120
12. 121 – 140
13. 141 – 160
14. 161 – 180
15. 181 – 200
16. 201 – 250
17. 251 – 300
18. 301 – 350
19. 351 – 400
20. 401 – 500
21. 501 – 600
22. 601 – 700
23. 701 – 800
24. 801 – 900
25. 901 – 1000
19
Operatorul mai poate efectua trei operatii şi acelea sunt:
adãugarea, modificarea şi ştergerea de rute. Aceste
lucruri se pot face prin apãsarea tastei „r” sau dand click
pe butonul „Introducere/Modificare/Stergere Rute” din
meniu. La efectuarea acestei operatii va apãrea
urmãtoarea fereastrã:
20
Pentru a şterge un tren, oricare ar fi acesta vom folosi comanda
marcatã de cifra „5”.
21
CAPITOLUL III
22
iar 7 sunt subformulare.
Acestea sunt:
- Mers Subform
- Mers Subform1
- Mers Subform2
- Supliment Subform
- Tichet Subform
- Trenuri Subform1
- Trenuri Subform.
23
3.1 Prezentarea tabelelor in mod „Design”:
24
şi urmãtorii indecşi:
25
şi urmãtorii indecşi:
26
şi cu urmãtorii indecşi:
27
Tabela „Altele” ce contine campurile:
28
Ruta (Text);
Tip (Number);
şi cu urmãtorii indecşi:
29
trebuiesc sã fie bine definite deoarece chiar şi o singurã relatie
realizatã incorect poate duce la erori foarte mari. Dupã ce am
realizat o relatie intre doua tabele trebuie sã o şi „personalizãm”,
adicã sã stabilim tipul de Join şi Integritatea Referntialã .Pentru a
realiza aceste operatii dam dublu click pe relatie şi bifãm
variantele corespunzãtoare.
- integritate referentialã:
30
- Join de tipul:
31
:
Formularul „Localitãti”:
Formularul „Plecãri”:
32
Formularul „Rute”:
Formularul „Supliment”
33
Formularul „Tichet”
Formularul „Trenuri”
Formularul „Variabile”
34
Formularul „Altele”
Formularul „Meniu”
Subformularul „Altele Subform”
Subformularul „Mers Subform”
Subformularul „Mers Subform1”
Subformularul „Mers Subform2”
Subformularul „Supliment Subform”
Subformularul „Tichet Subform”
Subformularul „Trenuri Subform”
Subformularul „Trenuri Subform1”
35
ANEXA
- Formularul „Meniu”:
stDocName = "Rute"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_introrute_Click:
Exit Sub
Err_introrute_Click:
MsgBox Err.Description
Resume Exit_introrute_Click
End Sub
Private Sub introvar_Click()
36
On Error GoTo Err_introvar_Click
stDocName = "Variabile"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_introvar_Click:
Exit Sub
Err_introvar_Click:
MsgBox Err.Description
Resume Exit_introvar_Click
End Sub
Private Sub plecari_Click()
On Error GoTo Err_plecari_Click
stDocName = "Plecari"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_plecari_Click:
Exit Sub
Err_plecari_Click:
MsgBox Err.Description
Resume Exit_plecari_Click
End Sub
Private Sub bilete_Click()
On Error GoTo Err_bilete_Click
37
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Trenuri"
DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_bilete_Click:
Exit Sub
Err_bilete_Click:
MsgBox Err.Description
Resume Exit_bilete_Click
End Sub
Private Sub iesire_Click()
On Error GoTo Err_iesire_Click
DoCmd.Quit
Exit_iesire_Click:
Exit Sub
Err_iesire_Click:
MsgBox Err.Description
Resume Exit_iesire_Click
End Sub
38
- Formularul „Plecãri”:
- Formularul „Rute”:
39
Else
MsgBox Err.Description
End If
Resume Exit_urmator_Click
End Sub
40
Err_sterge_Click:
If (Err.Number = 3200) Then
MsgBox "Stergeti inainte localitatile!", vbInformation,
"Erore"
Else
MsgBox Err.Description
End If
Resume Exit_sterge_Click
End Sub
- Formularul „Trenuri”:
41
supliment_clasa = (valoare_tichet * prcl) / 100
End If
valoare_loc = 0
loc.SetFocus
If (loc.Value = -1) Then
Forms!Trenuri![Altele SubForm]!PretL.SetFocus
valoare_loc = Forms!Trenuri![Altele SubForm]!
PretL.Text
End If
valoare_supliment = 0
Forms!Trenuri![Trenuri subfoerm1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Supliment
subform].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Supliment subform]!
PretS.SetFocus
suvi = Forms!Trenuri![Trenuri subfoerm1]![Supliment
subform]!PretS.Text
valoare_supliment = (valoare_tichet * suvi) / 100
valoare_total = (valoare_tichet - valoare_tichetr) +
supliment_clasa + valoare_loc + valoare_supliment
Total.SetFocus
Total.Text = valoare_total
End Sub
42
local1text = Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1]!Localitate.Text
dela.SetFocus
dela.Text = local1text
Forms!Trenuri![Trenuri subfoerm1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers Subform1]!
Ora.SetFocus
ora1text = Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1]!Ora.Text
oarap.SetFocus
oarap.Text = ora1text
Forms!Trenuri![Trenuri subfoerm1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers Subform1]!
Km.SetFocus
km1text = Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1]!Km.Text
kmp.Visible = True
kmp.SetFocus
kmp.Text = km1text
Tip.SetFocus
kmp.Visible = False
kms.Visible = True
kms.SetFocus
km2text = kms.Text
Tip.SetFocus
kms.Visible = False
If (km2text = "") Then
km2text = 99999
End If
km1text = km1text * 1
km2text = km2text * 1
If (km2text <= km1text) Then
43
MsgBox "Ati gresit sensul", vbCritical, "Eroare"
dela.SetFocus
dela.Text = ""
oarap.SetFocus
oarap.Text = ""
kmp.Visible = True
kmp.SetFocus
kmp.Text = ""
Tip.SetFocus
kmp.Visible = False
ElseIf (km2text < 99999) Then
distval = km2text - km1text
If ((distval > 0) And (distval <= 10)) Then
distval = 10
End If
If ((distval > 10) And (distval <= 20)) Then
distval = 20
End If
If ((distval > 20) And (distval <= 30)) Then
distval = 30
End If
If ((distval > 30) And (distval <= 40)) Then
distval = 40
End If
If ((distval > 40) And (distval <= 50)) Then
distval = 50
End If
If ((distval > 50) And (distval <= 60)) Then
distval = 60
End If
If ((distval > 60) And (distval <= 70)) Then
distval = 70
End If
If ((distval > 70) And (distval <= 80)) Then
distval = 80
End If
44
If ((distval > 80) And (distval <= 90)) Then
distval = 90
End If
If ((distval > 90) And (distval <= 100)) Then
distval = 100
End If
If ((distval > 100) And (distval <= 120)) Then
distval = 120
End If
If ((distval > 120) And (distval <= 140)) Then
distval = 140
End If
If ((distval > 140) And (distval <= 160)) Then
distval = 160
End If
If ((distval > 160) And (distval <= 180)) Then
distval = 180
End If
If ((distval > 180) And (distval <= 200)) Then
distval = 200
End If
If ((distval > 200) And (distval <= 250)) Then
distval = 250
End If
If ((distval > 250) And (distval <= 300)) Then
distval = 300
End If
If ((distval > 300) And (distval <= 350)) Then
distval = 350
End If
If ((distval > 350) And (distval <= 400)) Then
distval = 400
End If
If ((distval > 400) And (distval <= 500)) Then
distval = 500
End If
45
If ((distval > 500) And (distval <= 600)) Then
distval = 600
End If
If ((distval > 600) And (distval <= 700)) Then
distval = 700
End If
If ((distval > 700) And (distval <= 800)) Then
distval = 800
End If
If ((distval > 800) And (distval <= 900)) Then
distval = 900
End If
If ((distval > 900) And (distval <= 1000)) Then
distval = 1000
End If
If (distval > 1000) Then
distval = 1001
End If
Distanta.SetFocus
Distanta.Text = distval
End If
End Sub
46
panala.SetFocus
panala.Text = local2text
Forms!Trenuri![Trenuri subfoerm1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers Subform1]!
Ora.SetFocus
ora2text = Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1]!Ora.Text
oras.SetFocus
oras.Text = ora2text
Forms!Trenuri![Trenuri subfoerm1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1].SetFocus
Forms!Trenuri![Trenuri subfoerm1]![Mers Subform1]!
Km.SetFocus
km2text = Forms!Trenuri![Trenuri subfoerm1]![Mers
Subform1]!Km.Text
kms.Visible = True
kms.SetFocus
kms.Text = km2text
Tip.SetFocus
kms.Visible = False
kmp.Visible = True
kmp.SetFocus
km1text = kmp.Text
Tip.SetFocus
kmp.Visible = False
If (km1text = "") Then
km1text = -1
End If
km1text = km1text * 1
km2text = km2text * 1
If (km2text <= km1text) Then
MsgBox "Ati gresit sensul", vbCritical, "Eroare"
panala.SetFocus
47
panala.Text = ""
oras.SetFocus
oras.Text = ""
kms.Visible = True
kms.SetFocus
kms.Text = ""
Tip.SetFocus
kms.Visible = False
ElseIf (km1text > -1) Then
distval = km2text - km1text
If ((distval > 0) And (distval <= 10)) Then
distval = 10
End If
If ((distval > 10) And (distval <= 20)) Then
distval = 20
End If
If ((distval > 20) And (distval <= 30)) Then
distval = 30
End If
If ((distval > 30) And (distval <= 40)) Then
distval = 40
End If
If ((distval > 40) And (distval <= 50)) Then
distval = 50
End If
If ((distval > 50) And (distval <= 60)) Then
distval = 60
End If
If ((distval > 60) And (distval <= 70)) Then
distval = 70
End If
If ((distval > 70) And (distval <= 80)) Then
distval = 80
End If
If ((distval > 80) And (distval <= 90)) Then
distval = 90
48
End If
If ((distval > 90) And (distval <= 100)) Then
distval = 100
End If
If ((distval > 100) And (distval <= 120)) Then
distval = 120
End If
If ((distval > 120) And (distval <= 140)) Then
distval = 140
End If
If ((distval > 140) And (distval <= 160)) Then
distval = 160
End If
If ((distval > 160) And (distval <= 180)) Then
distval = 180
End If
If ((distval > 180) And (distval <= 200)) Then
distval = 200
End If
If ((distval > 200) And (distval <= 250)) Then
distval = 250
End If
If ((distval > 250) And (distval <= 300)) Then
distval = 300
End If
If ((distval > 300) And (distval <= 350)) Then
distval = 350
End If
If ((distval > 350) And (distval <= 400)) Then
distval = 400
End If
If ((distval > 400) And (distval <= 500)) Then
distval = 500
End If
If ((distval > 500) And (distval <= 600)) Then
distval = 600
49
End If
If ((distval > 600) And (distval <= 700)) Then
distval = 700
End If
If ((distval > 700) And (distval <= 800)) Then
distval = 800
End If
If ((distval > 800) And (distval <= 900)) Then
distval = 900
End If
If ((distval > 900) And (distval <= 1000)) Then
distval = 1000
End If
If (distval > 1000) Then
distval = 1001
End If
Distanta.SetFocus
Distanta.Text = distval
End If
End Sub
50
dela.Text = ""
oarap.SetFocus
oarap.Text = ""
kmp.Visible = True
kmp.SetFocus
kmp.Text = ""
Tip.SetFocus
kmp.Visible = False
panala.SetFocus
panala.Text = ""
oras.SetFocus
oras.Text = ""
kms.Visible = True
kms.SetFocus
kms.Text = ""
Tip.SetFocus
kms.Visible = False
Distanta.SetFocus
Distanta.Text = ""
Total.SetFocus
Total.Text = ""
End Sub
51
52