தரவுகளை அனுகுதலும் நிருவகித்தலும் ஆகிய இரண்டு செயல்களும் தரவுதள பயன்பாடுகளிலும் மிகமுக்கியமான பணிகளாகும்,விபிஏவின் குறிமுயை பயன்படுத்தி தரவுகளை அனுகுவதற்கும் அவற்றை உருமாற்றம் செய்வதற்கும் தேவையான செயல்களை கட்டுண்ட படிவத்தில் செயல் படுத்திட முடியும், இதற்காக விபிஏவில் ADO (Active X Data Object) என்பது பயன்படுகின்றது,
பல விபிஏ குறிமுறைகளில் தரவுகளை கையாளுவதற்காக Structured Query Language என்பதை SQL(இதனை ess que ell என உச்சரிக்க வேண்டும்) என சுருக்கமாக அழைக்கப்படும் கூற்று பயன்படுத்தி கொள்ளப்படுகின்றது, இதன்மூலம் தரவுதளத்திலிருந்து தரவுகளை மீட்டெடுப்பது,புதியதை சேர்ப்பது,புத்தாக்கம் செய்வது,ஆகியபணிகளை மிக விரைவாகவும் சுலபமாகம் செய்யலாம்,அக்சஸின் வினா வடிவமைப்பை பயன்படுத்தி புதியதொரு வினாவை உருவாக்கிடும்போது அக்சஸ்ஆனது தானாகவே இந்த வினாவை ஒரு SQL கூற்றாக உருமாற்றம் செய்து வடிவமைத்து கொள்கின்றது இதற்கென தனியாக SQL கூற்றை எழுதிடும் பணியை செய்யத் தேவையில்லை மேலும் இந்த வினாவை இயக்கினால் என்னசெயல் நடைபெறுமோ அதே செயல் இந்த SQL கூற்றும் செயல்படுத்திடும்,
தொடர்புடைய பல்வேறு தரவு மேலாண்மையில் SQL எனும் செந்தரமொழி அக்சஸின் அட்டவணையிற்காக வினா எழுதுதல் புத்தாக்கம் செய்தல், ஆகிய செயல்களை பயன்படுத்திக் கொள்கின்றது, இது ANSI SQL -92 என்பதற்கு பொருத்தமாக இல்லாதிருந்தாலும் பல்வேறு செயல்களில் அக்சஸானது SQL உடன் சேர்ந்து ஒருசில சிறிய மாற்றங்களோடு நடைமுறை படுத்துவதற்காக பங்கிட்டு கொள்கின்றது,
அக்சஸின் படிவங்களிலும் அறிக்கைகளிலும் மிகவிரைவானதொரு வினாவை உருவாக்கிட SQL இன்குறிமுறை பயன்படுகின்றது
படம்-15-1
ஓரு சாதாரண வினாவை படம்-15-1இல் உள்ளவாறு வடிவமைப்பு காட்சி திரையில் உருவாக்கிடும்போது இதன் பின்புலமாக ஒரு SQL கூற்றும் (படம்-15-2)தானகவே உருவாகின்றது, தேவையெனில் வடிவமைப்பு சாளரத்தின் அல்லது SQL சாளரத்தின்வின் மூலம் இதில் மாறுதல் ஏதேனும் செய்து கொள்ளலாம்,அல்லது அக்சஸின் பட்டியில் உள்ள view எனும் drop down பட்டியலை பிடித்து செயல்படுத்துவதன் மூலம் இவற்றிற்கிடையே பரிமாறி கொள்ளள முடியும்
படம்-15-2
ஒரு SQL கூற்றை உருவாக்கிடும் ஆரம்ப நிலையில் இருப்பவர்கள் வடிவமைப்பு காட்சியில் வினாவை உருவாக்கிய பிறகு தொடர்புடைய SQLஇன் கூற்றானது இதன் காட்சி சாளரத்தின்வில் தானாகவே உருவாகியிருப்பதை காணலாம்,
பொதுவாக SQL கூற்றுகளில் 1,SELECT, 2,FROM , 3,WHERE, 4,ORDER BY ஆகிய நான்கு திறவுச்சொற்கள் இருப்பதை காணலாம்,இதில்
1,SELECT எந்தவொரு SQL கூற்றையும் தொடங்குவதற்காக இந்த திவுச்சொல் பயன்படுகின்றது , இதனை தொடர்ந்து ஒரு அட்டவணையிலிருந்து தெரிவு செய்ய வேண்டிய புலங்களின் பெயர் இருக்கும், உதாரணமாக
SELECT tblsaleslineitem.discription,tblcontacts.state,tblcontact.company
இதில் tbl என்பது table என்பதில் சுருக்குபெயராகும் இதனை தொடர்ந்து ஒரு அட்டவணையின் பெயரும் அதன்பின்னர் ஒரு முற்றுப்புள்ளியும் அதனையும் தொடர்ந்து தெரிவு செய்ய வேண்டிய புலத்தின் பெயரும் இருக்கும்,
ஒருசில நேரங்களில் ஒரு அட்டவணையில் உள்ள அனைத்து புலங்களின் பெயரும் தேவையெனும் நிலையில் இந்த SELECT கூற்றினை தொடர்ந்து தனிப்பட்டதொரு புலத்தின் பெயரை கொடுப்பதற்கு பதிலாக ALL என்ற திறவுச்சொல்லை கொடுத்தால் அட்டவணையின் அனைத்து புலங்களின் பெயர்களையும் வினாவில் கொண்டுவந்து பிரிதிபலிக்கச்செய்யும்,
2,FROM தெரிவு செய்யவேண்டிய புலங்கள் உள்ள அட்டவணையின்பெயர் இந்த திறவுச்சொல்லை தொடர்ந்து கொடுக்கப்பட்டிருக்கும், ஒவ்வொரு SELECTஎனும் திறவுச்சொல்லை தொடர்ந்து ஒரு FROM எனும் திறவுச்சொல் இருக்கும் ஒன்றுக்குமேற்பட்ட அட்டவணைகளிலிருந்து இந்த புலங்களை தேடிப்பிடித்து கொண்டு வரவேண்டிய நிலையில் INNER JOIN ON மற்றும் OUTTER JOIN ON ஆகியவை பயன்படுகின்றன, ஒருஅட்டவணையின் புலங்களுக்குள் மற்றொரு அட்டவணையின் புலம் வரவேண்டுமெனில் INNER JOIN ON உம் அதையே வெளிப்புறம் கொண்டுவர வேண்டுமெனில் OUTTER JOIN ON உம் அதேபோன்ற வலதுபுறமாக இருக்கவேண்டுமெனில் RIGHT JOIN ON உம் இடதுபுறமாக இருக்க வேண்டுமெனில் LEFT JOIN ON உம் பயன்படுகின்றன,
இவ்வாறே இந்த FROM எனும் திறவுச்சொல்லை தொடர்ந்து ஒரேபெயரில் ஒன்றுக்குமேற்பட்ட புலங்கள் இருந்தால் உருமாதிரியை விட்டுவிடுவதற்காக DISTINCT என்ற திறவுச்சொல் பயன்படுகின்றது ஒரேமாதிரியான ஆவணத்தை தேடிப்பிடித்திட DISTINT ROW எனும் திறவுச்சொல் பயன்படுகின்றது, மேலும் TOP எனும் திறவுச்சொல்லானது வினாவில் கொடுக்கப்பட்ட முதலில் உள்ள பத்து ஆவணங்களை மட்டும் தேடிப்பிடித்து கொண்டுவரும்படி அறிவுறுத்த பயன்படுகின்றது,
3.WHERE எனும் திறவுச்சொல்னது தேடிப்பிடிக்கும் அட்டவணையின் புலங்களை நாம் குறிப்பிடும் நிபந்தனைகளுக்குட்பட்டு வடிகட்டி மிகுதியை மட்டும் கொண்டுவந்து பிரிதிபலிக்க செய்ய பயன்படுகின்றது, உதாரணமாக,
WHERE (tbl contact.state).”TN” or ( tbl contact.state). “AP”
இதில் தேடிப்பிடிக்கும்போது தமிழ்நாடு அல்லது ஆந்திரா ஆகிய மாநிலங்களின் பெயர்களை மட்டும் கொண்டுவந்து வினாவில் பிரிதிபலிக்கும்படி கேட்டுக்கொள்ளப்படுகின்றது,
4.ORDER BY எனும் திறவுச்சொல்லானது இவ்வாறு தேடிப்பிடித்து கொண்டுவந்த அட்டவணையில் இருக்கும் ஆவணங்களை எந்த முன்னுரிமை வரிசைப்படி தேக்கிவைத்திடுவது எனக் குறிப்பிட பயன்படுகின்றது, உதாரணமாக
ORDER BY tblsaleslineitem.discription, tblcontact.state, tblcontact.company
இதில் முதலில் discription பின்னர் stateஇன் பெயர் அதன்பின்னர் companyஇன் பெயர் என்றவாறான முன்னுரிமை வரிசைப்படி இருக்குமாறு தேக்கிவைக்கின்றது,
இந்த SQL கூற்றுகளின் இறுதியில் ஒரு ; அரைபுள்ளி இருக்கவேண்டும், அப்போதுதான் இந்த கூற்றின் செயல் முடிவுபெற்றதாக கொள்ள முடியும், இவ்வாறு அரைபுள்ளியை கூற்றின் இறுதியில் வைக்காமல் இருந்தாலும் அக்சஸானது கூற்றின் இறுதியில் ஒரு அரைப்புள்ளி இருப்பதாக கருதி கொள்ளும், ஆனால் கூற்றின் இடையில் தேவையற்ற இடத்தில் இந்த அரைபுள்ளியைஇட்டால் உடன் நாம் கோரிய செயலை செய்யாது திரையில் பிழை செய்தியை மட்டும் பிரிதிபலிக்க செய்யும்,
நடப்பில் அக்சஸின் விபிஏவானது DAOவை ஆதரிக்கும்படி செய்யப் பட்டுள்ளது, ஆனால் தொடர்ந்து செயல்படும்படியான வசதியை ஏற்படுத்த வில்லை அதற்கு பதிலாக ஒரு ADOவை ஆதரித்து செயல்படும்படி உருவாக்கப்பட்டுள்ளது,பொதுவாக இவையிரண்டும் பல்வேறு இடங்களின் சூழலில் ஒன்றுக்கொன்று பகிர்ந்துகொள்ளும்படி செய்யப்பட்டுள்ளது, இவற்றில் DAOவானது DAO.Recorset dataஎன்றும் ADOவானது ADODB.Recordsetஎன்றும் ஒரேமாதிரியான Recordset இன் வகையாகும்
பட்டி 15-1
Dim rs As ADODB.Redordset
Set rs = New ADODB.Recordset
rs.ActiveConnection = CurresntProject.Connection
rs.Source = “tblcontacts ”
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Open
இந்த பட்டியில் ஒரு அட்டவணையை திறப்பதற்கான குறிமுறையில் ADO Recordset ஐ எவ்வாறு பயன்படுகின்றது என கொடுக்கப்பட்டுள்ளது,
ADO Recordset Object ஆனது ஒரு வினாவில் அல்லது ஒரு அட்டவணையில் இருந்து தரவுகளை மீட்டெடுப்பதற்காக திறக்கும் வழிமுறைகளை வழங்குகின்றது
இங்கு தரவுதளத்தின் அட்டவணையிள் குழுவான ஆவணங்களை வினா மூலம் அழைக்கபடுபவையே Recordset ஆகும்
இந்த திறக்கும் வழிமுறை நான்கு அளபுருக்களை(attribute) கொண்டது,
1,source :இது ஆவணங்களை மீட்டெடுக்கும் வினாவின் பெயர்அல்லது அட்டவணையின் பெயராகும்,
2.Active connect : இத தரவுதளத்தின் அட்டவணைகளுக்குள் இணைப்பு ஏற்படுத்த பயன்படும் தொடர்புகோடாகும்,
3. Cursor Type:இது ஆவணத்தை தேடிப்பிடிக்கும்போது தோன்றும் இடும்சுட்டியின் உருவமாகும், ADO இட்ம்சுட்டியானது forward என்ற திறவுச்சொல்லை பயன்படுத்தி adOpenforwardonly என்ற கட்டளைவழியாக முன்பக்ககமாக மட்டுமே நகர்த்தமுடியும், adOpenDynamicஇதன்மூலம் இடம்சுட்டி எந்த பக்கமும் நகர்த்தி செல்லமுடியும் இவை இடம்சுட்டி செல்லும் திசையையும் வகையையும் குறிக்க பயன்படுகின்றது,
4,LockType:இது ஆவணங்களின் புத்தாக்கத்தின்போது ADO ஆனது எவ்வாறு Lock செய்வது என குறிப்பிடுகின்றது,இதில் உள்ள Lock optimistic என்பது மற்றவர்கள் ஆவணங்களை பயன்படுத்தி கொள்ள அனுமதிக்கின்றது, Lock pessimistic என்பது மற்றவர்கள் ஆவணங்களை பயன்படுத்தி கொள்ள மறுக்கின்றது,மேலே உள்ள கூற்றை பின்வருமாறு மாற்றியமைக்கமுடியும்,
பட்டி 15-2
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
rs.Open “tblcontacts”, CurrrentProject.Connection,_adOpenDynamic,adLockOptimistic
புதிய ஆவணங்களை சேர்ப்பதற்கான கூற்று,பட்டி 15-3
Private Sub New_Contact_Click()
Dim rs As ADODB.Recorset
On Error GoTo HandleError
Set rs = New ADODB.Recordset
rs.Open “tblContacts”, CurrrentProject.Connection,_
adOpenDynamic,adLockOptimistic
With rs
‘Add New record to end of Recordset;
‘AddNew
‘Add data:
![LastName] = “Sarkarai”
![LastName] = “Manickam”
‘Commit the changes:
.Update
End With
rs.Close
Set rs = Nothing
ExitHere
Exit Sub
HandleError:
MsgBox Err.Description
Resume ExitHere
End Sub
இதில் Add new metod என்பது புதிய ஆவணத்தை சேர்க்க பயன்படுகின்றது, இது ADO வின் Edit Recordset data வை போன்றது, முதலில் ஒரு பொத்தானை உருவாக்கப் படுகின்றது, பின்னர் இதற்காக Add New என்ற பெயரை உள்ளீடுசெய்து இந்த Recordset இன் ஒரு மதிப்பு ஒதுக்கீடு செய்யப்படுகின்றது, உடன் Recordset இன் பொருள் வழிமுறை பொத்தானிலிருந்து புதிய ஆவணத்தை இணைத்து கொள்கின்றது,
நீக்கம் செய்வதற்கான பட்டி 15-4
Private Sub Delete_Contact_Click()
Dim rs As ADODB.Recorset
Dim strSQL As String
On Error GoTo HandleError
Set rs = New ADODB.Recordset
strSQL = “SELECT * FROM tblcontacts ” _
& WHERE [ContactID]=”
&ME![txtContactID]
rs.Open “tblContacts”, CurrrentProject.Connection,_
adOpenDynamic,& adLockOptimistic
With rs
With rs
If Not .EOF Then
‘Delete the record ;
.Delete
End If
End With
rs.Close
Set rs = Nothing
ExitHere
Exit Sub
HandleError:
MsgBox Err.Description
Resume ExitHere
End Sub
இதில் முதலில் ஒரு செய்தி பெட்டிமூலம் நீக்கம்செய்வதை உறுதிசெய்து கொள்ளாது, ஆனால் ADOவில் முதலில் நீக்கம் செய்வதை உறுதிசெய்து கொண்ட பின்னரே ஆவணமானது நீக்கம்செய்யப்படுகின்றது,
பல அட்டவணைகளை நீக்கம் செய்தல் பட்டி15-5
Private Sub cmdDelete_Click()
Dim intAnswer As Integer
Dim strSQL As String
If Me.NewRecord Then
Me.Undo
Exit Sub
End If
intAnswer = MsgBox(“Are you sure you want to “_
& “delete this Invoice?”, vbQuestion +vbYesNo,_
“Delete Invoice”)
If intAnswer = vbNo Then
Exit Sub
End If
‘Delete payments for this invoices:
strSQL = “FROM * FROM tblSalesPayments”_
& “WHERE Invoice Number = ” & me.InvoiceNumber
CurresntProject.Connection.Execute strSQL
‘Delete line items:
strSQL = “DELETE * FROM tblSalesLineItems”_
&”WHERE InvoiceNumber = ” & Me.InvoiceNumber
CurrentProject.Connection.ExecutestrSQL
‘Delete invoice record:
RunCommand acCmdSelectRecord
RunCommand acCmdDeleteRecord
End Sub
இக்கூற்றில் இரண்டு வெவ்வேற இடங்களில் Exit sub எனும் கட்டளை உள்ளது, முதலில் இருப்பது புதிய ஆவணங்கள் சேர்த்தவுடன் வெளியேறும்படி கட்டளை யிடுகின்றது, ஏனெனில் புதிய ஆவணத்தை நீக்கம்செய்யவேண்டிய தேவையில்லை, ஆனால் இந்த புதியஆவணத்தை நீக்கம்செய்ய முயற்சிசெய்தால் உடன் பிழைச்செய்தி திரையில் தோன்றச்செய்கின்றது,
இரண்டாவதாக இருப்பது ஆவணத்தை நீக்கம் செய்வதற்கான உறுதிசெய்து கொள்ளும் உரையாடல் பெட்டியை திரையில் தோன்றச்செய்து அதில் நாம் தெரிவுசெய்வதற்கேற்றவாறு செயல்படும்படி அமைக்கப்பட்டுள்ளது உதாரணமாக செய்தி பெட்டியில் yesஎன்பதை தெரிவுசெய்தால் மட்டும் நீக்கம் செய்யமுடியும்என்றும் no என்பதை தெரிவுசெய்தால் நீக்கம்செய்யாமல் விட்டுவிடும்படியும் நிபந்தனையை பொறுத்த செயல்படும்பபடி அமைக்கப்பட்டுள்ளது,