Vous êtes sur la page 1sur 19

INDICAII I RSPUNSURI

1.

Paragraful 2.3
c proiecie, diferen
d selecia
f produs cartezian
g proiecie, produs cartezian

3.
Rezultatul este dat de reuniunea celor dou relaii.
4.
Se realizeaz

proiecia
Den(Societi).
5.

relaiei SOCIETI asupra

atributului

Den:

a. Extragei toate datele referitoare la societile pentru care s-au realizat


tranzacii, folosind operaia join:
JOIN(Societi, TranZi; Societi.CodS= TranZi.CodSoc)

Obinei o nou relaie, R1, cu atributele CodS, Den, CodSoc, TipOper, NrAct i
Pret.
Determinai numele societilor pentru care s-au realizat tranzacii n ziua
curent, folosind operatorul proiecie: Den(R1).
b. Rezultatul este dat de diferena dintre relaia Den(Societi) de la
aplicaia 8 i Den(R1), de la 9.
c. Selectai din tabelul TranZi societile respective, folosind operaia de
selecie:
R1=TipOper=C & Pret>15(TranZi)

Extragei din relaia R1, ce s-a obinut, codul societilor folosind operaia de
proiecie:
R2=CodSoc(R1)

Asociai codului societilor din relaia R2 denumirea acestora din relaia


Societi:
R3=JOIN(R2,Societi; R2.CodSoc= Societi.CodSoc)

Determinai denumirea societilor folosind operaia de proiecie:


Den(R3)

1.

Paragraful 4.3
Pentru cmpul NrI, n Field Properties, introducei la Field Size numrul 6.
Pentru cmpul Sectie, n Field Properties, selectai la Field Size subtipul Byte
etc.

8.
La proprietatea Default completai cu 10.
9.
La proprietatea Default completai cu funcia Date().
3

Paragraful 5.5
1.
Varianta 1 folosii utilitarul Query Design.
Varianta 2 folosii utilitarul Query Wizard.
2.
Folosii utilitarul Query Design.
Punei pe gril, n prima celul din rndul Field, cmpul Den. n a doua celul
din rndul Field, dup cmpul Den, tastai:
AmL:Round([ValI]/[dnf]/12,0)

Funcia Round are forma: Round (x,n), unde: x este numrul care se
rotunjete, n este numrul de zecimale.
3.

4.

Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, dnf, dif. Pentru
cmpul dif, n celula Criteria tastai >=#01/01/2008# iar n celula Show,
debifai caseta.
Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, ValI.
n celula Criteria corespunztoare cmpului Den tastai C*.

5.
Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, ValI.
n celula Criteria corespunztoare cmpului ValI tastai >3000.
6.
Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, ValI.
n celula Criteria corespunztoare cmpului ValI tastai [Dai valoarea].
7.
Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, ValI.
Varianta 1
n celula Criteria corespunztoare cmpului ValI tastai
>= [Valoarea minim] And <= [Valoarea maxim]

Varianta 2
n celula Criteria corespunztoare cmpului ValI tastai

Between [Valoarea minim] And [Valoarea maxim]

Varianta 3 utilizarea ferestrei Expression Builder


Clic-dreapta n celula Criteria Build Operators Comparison
dublu clic pe Between. n partea superioar a ferestrei Expression Builder
apare:
Between Expr And Expr.
nlocuii primul Expr cu [Valoarea minim] i al doilea Expr cu [Valoarea
maxim].
9.
Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, dif. n celula
Criteria corespunztoare cmpului Den tastai C*. n celula Criteria
corespunztoare cmpului dif tastai >#20/12/2008#.
4

11.
Folosii utilitarul Query Design. Pe gril punei cmpurile: Den, dif i cmpul
calculat Ani.
Varianta 1
n linia Field, dup cmpul dif, tastai
Ani:DateDiff(yyyy;[dif];Date())
Dac apare eroare, nlocuii separatorul ; cu ,
Varianta 2
Utilizai fereastra Expression Builder.
12.
Folosii utilitarul Query Design. Plasai pe gril toate cmpurile tabelului.
n celula Criteria corespunztoare cmpului Den tastai constanta Null.
13.
Folosii utilitarul Query Design. Punei pe gril cmpul ValI. Apsai butonul
din grupul Show/Hide al filei Design. Pe gril apare linia Total.
nlocuii, n linia Total, Group By cu Sum.
14.
Folosii utilitarul Query Design. Punei pe gril cmpurile Sectie i ValI.
Apsai butonul
din grupul Show/Hide al filei Design. Pe gril apare
linia Total. nlocuii, n linia Total, Group By de la ValI cu Sum.
15.
La aplicaia 14, completai celula Criteria corespunztoare cmpului Sectie cu
10 Or 20.
18.
Vedei punctul 5.2.2 - Crearea unei interogri de tip creare tabel.
19.

Vedei punctul 5.3 - Interogri pentru tergere.

20.
Formula este:
ValReeval:[ValI]*1,12

Dac apare eroare, modificai virgula zecimal cu punct.


22.
Folosii utilitarul Crosstab Query Wizard (Error! Reference source not
found.).
23.
Pentru a specifica mai mult de dou seturi de criterii alternative, utilizai
rndurile de sub rndul Or. Fiecare rnd reprezint un set independent de
criterii.
24.
5

n celula Criteria corespunztoare cmpului Den tastai constanta Is Not


Null.
25.
n linia Field, dup cmpul Den, tastai Anul: Year([dif])
5.

8.

9.

10.
11.

Paragraful 6.5
Pentru gsirea nregistrrilor fr echivalent folosii utilitarul Find Unmatched
Query Wizard (Error! Reference source not found.).
Paragraful 7.7
Deschidei formularul n Design View, apoi desenai n seciunea Form
Footer o etichet, folosind butonul
din grupul Controls. Scriei numele
autorului pe etichet.
Deschidei formularul creat, n Design View. Selectai utilizarea experilor
pentru controale. Desenai butoanele de comand n seciunea Form Footer.
Acestor butoane de comand le vor corespunde nite macrocomenzi
incorporate, ce se creaz automat. Macrocomenzile sunt prezentate n capitolul
XI.
Deschidei formularul n Design View. n foaia de proprieti a formularului,
n tab-ul Format, setai proprietatea Navigation Buttons pe No.
Deschidei formularul creat, n Design View. Parcurgei paii:
- clic-dreapta n cmpul Sectie Change TO Combo Box;
- clic-dreapta n cmpul Sectie Properties;
- n tab-ul Data, al ferestrei, modificai astfel: Row Source Type: Value List,
Row Source: 10;20
Paragraful 8.8

5.
Dup ce apelai Report Wizard, selectai tabelul MiFix, apoi cmpurile. Dup
efectuarea gruprii, fereastra arat astfel:

Dup selectarea cmpului NrI pentru sortare, fereastra arat astfel:

6.
Dup selectarea cmpului NrI, pentru sortare, dai clic pe butonul Summary
Options, din figura anterioar. Va apare fereastra Summary Options unde
bifai caseta Sum.

7.

Vizualizai raportul n Design View i apoi modificai n seciunea Sectie


Footer, respectiv Report Footer.

8.
Modificai n seciunea Report Header.
9.
n seciunea Report Footer, dup rndul ce conine totalul general, inserai
dou controale Label i apoi completai-le cu textul respectiv.
10.
Varianta 1
n seciunea Report Footer, dup rndul ce conine totalul general, inserai
controlul Text Box. n interiorul lui tastai =AVG(ValI). Modificai eticheta
acestui control.
Varianta 2
Afiai Property Sheet (fereastra de proprieti) a controlului, apoi n tab-ul
Data, la Control Source tastai formula. Putei selecta cmpuri i utiliza
fereastra Expression Builder.
11.

n seciunea Detail, dup ValI, desenai un Text Box. n interiorul Text Boxului tastai formula de calcul a amortizrii. Mutai eticheta corespunztoare n
seciunea Page Header.
Paragraful 9.3

1.
Varianta 1
Clic-dreapta pe cmpul dnf, alegei Number Filters, apoi Equals. n caseta
Custom Filter tastai 2.

Varianta 2
Clic pe sgeata din dreapta numelui cmpului dnf i bifai doar caseta n dreapta
creia este 2 sau alegei Number Filters, apoi Equals etc.
8

Varianta 3
Clic n coloana cmpului de filtrat (dnf), apoi din fila Home, grupul Sort &
Filter, alegei Filter etc.
2.
Clic pe sgeata din dreapta numelui cmpului Den sau clic n coloana Den, apoi
din fila Home, grupul Sort & Filter, alegei Filter.
Dup ce alegei Text Filters, apoi Begins With, n caseta ce apare tastai C*.

3.
Selectai n cmpul dif data dorit. Din fila Home, grupul Sort & Filter, alegei
Selection, apoi Equals etc.

4.
Dac e cazul, golii filtrele. n formularul de filtrare din figura urmtoare, clic n
coloana Sectie, clic pe sgeata din dreapta cmpului, apoi pe 10. Procedai
asemntor pentru cmpul dnf.

5.
Dup ce selectai secia 10, dai clic pe fila Or (ce este n partea de jos a
formularului), apoi selectai n mod asemntor secia 20.
6.
Grila de proiectare a filtrului este prezentat n figura urmtoare.

7.

Grila de proiectare a filtrului va conine doar cmpul Sectie.


Pentru definirea criteriului de filtrare utilizai Expression Builder.

8.
n celula Criteria punei Not 10.
Paragraful 11.6
1.
Selectai aciunea OpenTable. Setai argumentele aciunii.

2.
Selectai aciunea MsgBox. Setai argumentele aciunii.

3.
Argumentele aciunii MsgBox
Message: Primul macrou. Succes!
Beep: Yes
Type: None
Title:
Argumentele aciunii OpenTable
Table Name: MiFix
View: DataSheet
Data Mode: Read Only
4.
Selectai aciunea OpenForm. Setai argumentele aciunii.

10

6.
Selectai aciunea OpenForm. Setai argumentele aciunii.

8.
Selectai aciunea OpenForm. Setai argumentele aciunii.

9.
Argumentele aciunii OpenTable
Table Name: MiFix
View: DataSheet
Data Mode: Edit
Argumentele aciunii ApplyFilter
Filter Name:
Where Condition: [Sectie]=20
Control Name:
10.
Deschidei fereastra generatorului de macrocomenzi. n fila Design, grupul
Show/Hide, apsai butonul Macro Names. Apare coloana Macro Name.
Tastai n linia 1 i linia 2 numele macrocomenzilor: M1, respectiv M2.
11.
Selectai aciunea RunMacro. Setai argumentele aciunii.

11

12.
Selectai aciunea OpenReport. Setai argumentele aciunii.

13.
Selectai aciunea OpenForm. Setai argumentele aciunii.

14.
Selectai aciunea RunCommand. Setai argumentul aciunii.

15.
Creai formularul utiliznd Form Design.
Efectuai clic pe fila Design a formularului, apoi pe Property Sheet din grupul
Tools.
La tab-ul Event, al foii Property Sheet din figura urmtoare, pentru
evenimentul On Open selectai macrocomanda Macro 01.

12

16.
Macrocomanda individual conine dou aciuni: MsgBox i CancelEvent.
Argumentele aciunii MsgBox sunt prezentate n figura urmtoare. Aciunea
CancelEvent nu are argumente.

Deschidei raportul creat, n Design View. Deschidei foaia de proprieti a


raportului. La tab-ul Event, al ferestrei Property Sheet, pentru evenimentul
On No Data selectai macrocomanda individual creat.
17.
Creai un formular gol utiliznd Form Design. Desenai pe formular un buton
de comand.
La tab-ul Event, al ferestrei Property Sheet a butonului de comnd creat,
pentru evenimentul On Click selectai macrocomanda individual creat.
18.
Spre deosebire de aplicaia 17, pentru evenimentul On Click al butonului de
comand selectai Macro Builder utiliznd butonul
. Selectai argumentele
aciunii OpenTable.
Paragraful 12.6
1.
UPDATE MiFix
SET Sectie=60
WHERE Sectie=50;

2.
UPDATE MiFix
SET dnf=9, ValI=4000
WHERE dnf=10 AND ValI=3900;

3.

UPDATE MiFix
SET dnf=11;

4.
Se va implementa operatorul relaional reuniune, astfel:
13

- creai un nou tabel, numit TotalTranzactii, pe baza tabelului Tranzactii:


creai interogarea de tip creare tabel, prin instruciunea
SELECT Tranzactii.*
INTO TotalTranzactii
FROM Tranzactii;

executai interogarea pentru a obine tabelul TotalTranzactii


- adugai la tabelul TotalTranzactii nregistrrile din tabelul TranZi:
creai o interogare de adugare, prin instruciunea
INSERT INTO TotalTranzactii
SELECT TranZi.*
FROM TranZi;

executai interogarea de adugare.


n tabelul care rezult apar i nregistrrile identice din cele dou tabele.
5.

Se va implementa operatorul relaional reuniune, astfel:


- creai o interogare de unire (Union) ce conine nregistrrile celor dou
tabele
SELECT * FROM Sectia4
UNION SELECT * FROM Sectia5
ORDER BY Nume;

- creai noul tabel pornind de la interogarea obinut folosind instruciunea


SELECT INTO FROM ...

Observaie
Pentru a apare toate nregistrrile, utilizai:
SELECT * FROM Sectia4
UNION ALL SELECT * FROM Sectia5
ORDER BY Nume;

6.

Se va implementa operatorul relaional intersecie. Folosii instruciunea


SELECT Sectia4.*
FROM Sectia4
INNER JOIN Sectia5
ON Sectia4.cnp=Sectia5.cnp;

pentru a crea o interogare de selecie plecnd de la cele dou tabele surs.


Creai tabelul Suspecti plecnd de la interogarea anterioar (pe care o numim
Query17), astfel:
- creai o interogare de aciune
SELECT Query17.*
INTO Suspecti
FROM Query17;

- executai interogarea anterioar i obinei tabelul Suspecti.


7.

Se va implementa operatorul relaional diferena.


Creai o interogare de selecie (Query19) ce conine doar nregistrrile din
tabelul Sectie4, ce nu se gsesc i n tabelul Sectie5.
SELECT Sectia4.*
FROM Sectia4 LEFT JOIN Sectia5
ON Sectia4.cnp=Sectia5.cnp

14

WHERE Sectia5.cnp Is Null;

Creai tabelul Diferenta, astfel:


- creai o interogare de tip creare tabel, plecnd de la interogarea precedent
SELECT *
INTO Diferenta
FROM Query19;

- executai interogarea creat.


8.
Vedei punctul 12.5. n vizualizarea SQL tastai:
SELECT NrI,Sectie,Den
FROM MiF1
UNION
SELECT NrI,Sectie,Den
FROM MiF2;

Paragraful 13.3
1.

Vei completa Select Case i pentru celelalte judee. Rezultatul execuiei va


apare n fereastra Immediate. Dac nu se afieaz rezultatul, vizualizai
fereastra Immediate, astfel: View Immediate Window

15

2.

3.

4.

16

5.

6.

7.

Paragraful 15.2.1
Din fila Create, grupul Other, selectai Module. n fereastra de cod pentru
Visual Basic, tastai instruciunile.
1.

Sub x()
DoCmd.RunMacro GrupMacro1.M2
End Sub

17

2.
Sub x2()
DoCmd.RunSQL Delete FROM MiFix
End Sub

3.
Sub x3()
DoCmd.RunSQL SELECT Sectie,Den INTO MiFixN FROM MiFix
End Sub

4.
Sub x3()
DoCmd.RunSQL UPDATE MiFix SET Sectie=33
End Sub

sau

Sub x3()
Dim x As String
x= UPDATE MiFix SET Sectie=33
DoCmd.RunSQL x
End Sub

Paragraful 15.2.2
5.
Desenai un formular gol i activai expertul pentru controale. Desenai pe
formular controalele. Dup ce creai cele dou controale Text Box, modificai
proprietatea Name n txtDen, respectiv n txtValI.
Pentru Combo Box alegei prima opiune din figura ce urmeaz.

Selectai tabelul MiFix i cmpurile tabelului.


Deselectai caseta
.
n fila Data a controlului Combo Box, va apare:
Row Source: SELECT [MiFix].[NrI],[MiFix].[Den],[MiFix].[ValI]
FROM [MiFix];

Row Source Type:Table/Query


Bound Column:1
n fila Other, a controlului Combo Box, punei:
Name: cboNrI
n fila Event, a controlului Combo Box, alegei evenimentul On Change,
apoi deschidei fereastra de cod i introducei instruciunile:
If Not IsNull(cboNrI.Column(0)) Then
txtDen.SetFocus
txtDen.Text = cboNrI.Column(1)

18

txtValI.SetFocus
txtValI.Text = cboNrI.Column(2)
End If

ntre Private Sub cboNrI_Change() i End Sub.


6.
n fila Event de la Combo Box, alegei evenimentul On Change, apoi
deschidei fereastra de cod i introducei instruciunile:
Private Sub cboNrI_Change()
Dim x As Single
If Not IsNull(cboNrI.Column(0)) Then
x = Val(cboNrI.Column(1)) / Val(cboNrI.Column(2)) / 12
txtAmL.SetFocus
txtAmL.Text = Round(x, 0)
End If
End Sub

7.
Pentru Combo Box, setai proprietatea Name la cboNrI.
n fila Event de la Combo Box, alegei evenimentul On Click, apoi deschidei
fereastra de cod i introducei instruciunile:
Private Sub cboNrI_Click()
Dim x As Single
If Not IsNull(cboNrI.Column(0)) Then
x = Val(cboNrI.Column(1)) / Val(cboNrI.Column(2)) / 12
MsgBox "Amortizarea lunara=" & Round(x, 0)
End If
End Sub

8.
Creai un modul, alegnd Module, din grupul Other, fila Create. n fereastra
de cod ce se deschide, introducei instruciunile de mai jos.
Sub Sub1()
Dim x As Integer
x = InputBox("Dati pe x")
If x = 1 Then DoCmd.OpenTable "MIFix", acViewDesign,
acEdit
If x = 2 Then DoCmd.OpenForm "MiFix", acFormDS
DoCmd.Close
End Sub

9.
Ataai instruciunile procedurii evenimentului On Click al butonului de
comand. Acestea sunt:
If chkTabel.Value Then DoCmd.OpenTable "Student",
acViewNormal, acReadOnly
If chkInter.Value Then DoCmd.OpenQuery "CalcAm",
acViewNormal, acEdit

10.
Creai un modul, alegnd Module, din grupul Other, fila Create. n fereastra
de cod ce se deschide, introducei instruciunile de mai jos.
19

Sub Sub6()
Dim x As Integer
x = InputBox("Dati pe x")
Select Case x
Case 1
DoCmd.OpenTable "MiFix", acViewNormal, acEdit
Case 2
DoCmd.OpenForm "MiFix", acFormDS
Case Else
MsgBox "Introducere eronata"
End Select
End Sub

11.
Desenai un formular gol i activai expertul pentru controale. Desenai pe
formular controalele. Pentru List Box alegei prima opiune din figura ce
urmeaz.

Selectai tabelul MiFix i cmpurile tabelului, NrI i Den. Deselectai caseta


. n fila Data a controlului List Box, va apare:

n fila Other, a controlului List Box, punei:


Name: lstNrI
n fila Event, a butonului STERGERE, alegei evenimentul On Click. Ataai
instruciunile de mai jos evenimentului On Click al butonului de comand.
Variabila x memoreaz numrul de inventar care dorim s fie ters.
Dim Lista As Long, x As Long

20

Lista = lstNrI.Column(0)
DoCmd.RunSQL "DELETE FROM bbb WHERE NrI=x"

Selectai un mijloc fix i apsai butonul STERGERE. Va apare i caseta de


mai jos, Enter Parameter Value, n care introducei valoarea pentru x (x este
numrul de inventar).

Generalizare
n instruciunea DoCmd, modificai condiia WHERE astfel:
DoCmd.RunSQL "DELETE FROM bbb WHERE NrI=&x

n caseta Microsoft Office Access apare numrul de inventar selectat, ca n


figura urmtoare.

Dup un clic pe butonul OK ni se cere confirmarea tergerii, ca n figura


urmtoare.

21

Vous aimerez peut-être aussi