एक्सेस वीबीए टेबल्स - अपडेट, काउंट, डिलीट, क्रिएट, रीनेम, एक्सपोर्ट

यह ट्यूटोरियल आपको सिखाएगा कि वीबीए का उपयोग करके एक्सेस टेबल्स के साथ कैसे काम किया जाए।

वीबीए टेबल्स तक पहुंचें

शुरू करने के लिए हम एक्सेस में टेबल्स के साथ काम करने के लिए सरल कमांड प्रदर्शित करेंगे। बाद में इस ट्यूटोरियल में हम आपको एक्सेस में टेबल के साथ काम करने के लिए पेशेवर रूप से विकसित पूर्ण कार्य दिखाएंगे।

तालिका बनाएं

यह कोड "आईडी" और "नाम" फ़ील्ड के साथ "तालिका 1" नामक तालिका बनाने के लिए एसक्यूएल का उपयोग करेगा:

 मंद तालिका_नाम स्ट्रिंग के रूप में मंद फ़ील्ड स्ट्रिंग तालिका_नाम = "तालिका 1" फ़ील्ड = "([आईडी] वर्कर (150), [नाम] वर्कर (150))" CurrentDb। निष्पादित करें "तालिका बनाएं" और तालिका_नाम और फ़ील्ड

टेबल बंद करें

VBA कोड की यह पंक्ति एक तालिका (परिवर्तन सहेजना) को बंद कर देगी:

DoCmd. Close acTable, "Table1", acSaveYes

बिना सहेजे किसी तालिका को बंद करने के लिए:

DoCmd. Close acTable, "Table1", acSaveNo

तालिका हटाएं

यह कोड एक तालिका को हटा देगा (नोट: पहले तालिका को बंद किया जाना चाहिए):

DoCmd. Close acTable, "Table1", acSaveYes DoCmd.DeleteObject acTable = acDefault, "Table1"

तालिका का नाम बदलें:

कोड की यह पंक्ति एक एक्सेस टेबल का नाम बदल देगी:

DoCmd. नाम बदलें "Table1", acTable, "Table1_New"

एक अन्य विकल्प डेटाबेस ऑब्जेक्ट की TableDefs प्रॉपर्टी का उपयोग कर रहा है।

tdf = db.TableDefs (strOldTableName) tdf.Name = strNewTableName सेट करें

खाली / साफ़ तालिका

यह वीबीए कोड एक टेबल खाली कर देगा:

DoCmd.RunSQL "हटाएं * से" और "तालिका 1"

तालिका को छोटा करें / रिकॉर्ड हटाएं

VBA कोड की यह पंक्ति कुछ मानदंडों को पूरा करने वाली तालिका से रिकॉर्ड हटाने के लिए SQL का उपयोग करती है:

DoCmd.RunSQL ("हटाएं * से" और "तालिका 1" और "कहां" और "संख्या = 2")

एक्सेल में निर्यात तालिका

एक्सेल में टेबल एक्सपोर्ट करने के लिए का उपयोग करें DoCmd.OutputTo तरीका:

DoCmd.OutputTo acOutputTable, "Table1", acFormatXLS, "c:\temp\ExportedTable.xls"

या का उपयोग करें DoCmd.Transferस्प्रेडशीट तरीका:

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "Table1", "c:\temp\ExportedTable.xls", True

अद्यतन तालिका

चेतावनी संदेश प्रदर्शित किए बिना, निम्न कोड एक रिकॉर्ड को अपडेट करेगा:

DoCmd.SetWarnings (गलत) DoCmd.RunSQL "उत्पाद अद्यतन करेंT SET उत्पादT.ProductName = 'उत्पाद AAA' जहां (((उत्पादT.ProductID)=1))"

वीबीए टेबल फ़ंक्शंस एक्सेस करें

उपरोक्त कोड उदाहरण सरल कमांड हैं जिनका उपयोग आप VBA का उपयोग करके टेबल्स के साथ बातचीत करने के लिए कर सकते हैं। हालांकि, आपको इन आदेशों का ठीक से उपयोग करने के लिए अक्सर बहुत अधिक सहायक कोड (त्रुटि प्रबंधन सहित) जोड़ने की आवश्यकता होगी। नीचे आपको टेबल्स इन एक्सेस के साथ काम करने के लिए व्यावसायिक रूप से विकसित कार्य मिलेंगे।

टेबल रिकॉर्ड्स की गणना करें

यह फ़ंक्शन किसी तालिका में रिकॉर्ड की संख्या की गणना करेगा:

पब्लिक फंक्शन काउंट_टेबल_रिकॉर्ड्स (टेबलनाम स्ट्रिंग के रूप में) इंटीजर ऑन एरर गोटो एरर: डिम आर डीएओ के रूप में। रिकॉर्डसेट डिम सी इंटीजर सेट के रूप में r = CurrentDb.OpenRecordset ("सेलेक्ट काउंट (*) को rcount से" और TableName के रूप में। OpenRecordset if (r) .EOF) फिर c = 0 Else c = Nz(r!rCount, 0) End if Count_Table_Records = c Exit Function Err: कॉल MsgBox ("एक त्रुटि हुई:" और Err.Description, vbExclaration, "Error") एंड फंक्शन ' उपयोग उदाहरण निजी उप Count_Table_Records_Example() MsgBox (Count_Table_Records("Table1")) अंत उप

जांचें कि तालिका मौजूद है या नहीं

यह फ़ंक्शन परीक्षण करेगा कि कोई तालिका मौजूद है या नहीं, TRUE या FALSE लौटा रही है:

पब्लिक फंक्शन टेबल एक्ज़िस्ट्स (बायवैल स्ट्रटेबलनाम स्ट्रिंग के रूप में) बूलियन के रूप में 'फ़ंक्शन: निर्धारित करें कि टेबल एक्सेस डेटाबेस में मौजूद है या नहीं' तर्क: strTablename: डीएओ के रूप में मंद टीडीएफ की जांच करने के लिए तालिका का नाम। त्रुटि पर टेबलडिफ फिर से शुरू करें अगला सेट tdf = CurrentDb.TableDefs (strTableName ) TableExists = (Err.Number = 0) एंड फंक्शन

उपयोग में फ़ंक्शन का एक उदाहरण यहां दिया गया है:

निजी उप TableExists_Example() यदि VBA_Access_Checks.TableExists("Table") = True तब MsgBox ("तालिका मिली!") अन्य MsgBox ("तालिका नहीं मिली!") अंत यदि अंत उप

टेबल फंक्शन बनाएं

यह फ़ंक्शन वर्तमान डेटाबेस में एक्सेस VBA में एक तालिका बनाएगा:

पब्लिक फंक्शन क्रिएटटेबल (टेबल_फील्ड्स स्ट्रिंग के रूप में, टेबल_नाम स्ट्रिंग के रूप में) बूलियन डिम स्ट्रक्रिएटटेबल के रूप में स्ट्रिंग डिम इंटकाउंट के रूप में इंटीजर डिम स्ट्रफिल्ड्स () स्ट्रिंग डिम स्ट्रवैल्यूज के रूप में () स्ट्रिंग डिम इंट काउंटर के रूप में स्ट्रिंग डिम इंट काउंटर के रूप में इंटीजर डिम इंटडाटा के रूप में त्रुटि पर पूर्णांक के रूप में। strFields = स्प्लिट (table_fields, ",") strCreateTable = "तालिका बनाएं" और तालिका_नाम और "(" intCounter = 0 के लिए UBound (strFields) के लिए - 1 strCreateTable = strCreateTable और "[" और strFields (intCounter) और "] varchar ( १५०)," नेक्स्ट इफ राइट (strCreateTable, १) = "," फिर strCreateTable = लेफ्ट (strCreateTable, Len(strCreateTable) - 1) strCreateTable = strCreateTable & ")" End यदि CurrentDb.Execute strCreateTable intCounter = 0 intData = 0 यदि Err.Number = 0 फिर CreateTable = True Else CreateTable = False End if Exit Function Err: CreateTable = False MsgBox Err.Number & "" & Err.Description End Function

यदि तालिका सफलतापूर्वक बनाई गई है या तालिका नहीं बनाई गई है तो यह फ़ंक्शन TRUE लौटाएगा।

आप इस तरह के फ़ंक्शन को कॉल कर सकते हैं:

निजी उप CreateTable_Example () कॉल CreateTable ("f1, f2, f3, f4", "ttest") एंड सब

डिलीट / ड्रॉप टेबल फंक्शन

यदि यह मौजूद है तो यह फ़ंक्शन किसी तालिका को हटा देगा:

पब्लिक फंक्शन DeleteTableIfExists(TableName as String) यदि नहीं IsNull(DLookup("Name", "MSysObjects", "Name='" & TableName & "'")) तब DoCmd.SetWarnings False DoCmd. Close acTable, TableName, acSaveYes DoCmd. DeleteObject acTable = acDefault, TableName Debug.Print "Table" और TableName और "Delete…" DoCmd.SetWarnings True End If End Function

आप इस तरह के फ़ंक्शन को कॉल कर सकते हैं:

निजी सब DeleteTableIfExists_Example() कॉल DeleteTableIfExists("Table1") End Sub

खाली टेबल फंक्शन

यदि यह मौजूद है तो यह फ़ंक्शन एक तालिका खाली कर देगा:

सार्वजनिक कार्य खालीटेबल (स्ट्रिंग के रूप में तालिका का नाम) यदि नहीं है (DLookup("Name", "MSysObjects", "Name='" & TableName & "'")) तो DoCmd.SetWarnings False DoCmd.RunSQL "DELETE * FROM" और TableName Debug.Print "तालिका" और तालिका का नाम और "खाली…" DoCmd.SetWarnings True End If End Function

आप इस तरह के फ़ंक्शन को कॉल कर सकते हैं:

निजी उप खालीटेबल_उदाहरण () कॉल खालीटेबल ("तालिका 1") अंत उप

तालिका समारोह का नाम बदलें

यह वीबीए फ़ंक्शन एक तालिका का नाम बदल देगा:

पब्लिक फंक्शन RenameTable (ByVal strOldTableName स्ट्रिंग के रूप में, ByVal strNewTableName स्ट्रिंग के रूप में, वैकल्पिक strDBPath स्ट्रिंग के रूप में) बूलियन डिम db के रूप में DAO.Database Dim tdf As TableDef 'Trap किसी भी त्रुटि के लिए। एरर रिज्यूमे नेक्स्ट पर 'यदि डेटाबेस का नाम खाली है… यदि ट्रिम $(strDBPath) = "" फिर '… फिर डीबी को वर्तमान डीबी पर सेट करें। सेट डीबी = CurrentDb() अन्यथा 'अन्यथा, निर्दिष्ट खुले डेटाबेस में डीबी सेट करें। सेट db = DBEngine.Workspaces(0).OpenDatabase(strDBPath) ' देखें कि क्या कोई त्रुटि हुई है। अगर एरर तो 'MsgBox' को खोलने के लिए डेटाबेस नहीं मिल सका: "और strDBPath RenameTable = False Exit Function End If End If If ObjectExists("Table", strOldTableName, strDBPath) फिर tdf = db.TableDefs(strOldTableName) tdf.Name = सेट करें strNewTableName db. RenameTable बंद करें = ट्रू एल्स RenameTable = False End if End Function 'उपयोग उदाहरण निजी उप RenameTable_Example() कॉल RenameTable("table1", "table2") End Sub

आप इस तरह के फ़ंक्शन को कॉल कर सकते हैं:

निजी उप RenameTable_Example () कॉल नाम बदलें ("तालिका 1", "तालिका 2") अंत उप

तालिका से रिकॉर्ड्स को काटें/हटाएं

यह फ़ंक्शन त्रुटि प्रबंधन वाली तालिका से रिकॉर्ड हटा देगा:

सार्वजनिक समारोह Delete_From_Table (स्ट्रिंग के रूप में तालिका नाम, स्ट्रिंग के रूप में मानदंड) त्रुटि पर GoTo SubError DoCmd.SetWarnings False DoCmd.RunSQL ("हटाएं * से" और तालिका का नाम और "कहां" और मानदंड) DoCmd.SetWarnings True SubExit: Exit Function SubError: MsgBox " Delete_From_Table त्रुटि: " & vbCrLf और Err.Number & ":" और Err.Description फिर से शुरू SubExit एंड फंक्शन 'उपयोग उदाहरण पब्लिक सब Delete_From_Table_Example() कॉल Delete_From_Table("Table1", "num=2") End Sub

एक्सेल में निर्यात तालिका

कोड की यह पंक्ति एक तालिका को एक्सेल (एक नई स्प्रेडशीट) में निर्यात करेगी:

DoCmd.OutputTo acOutputTable, "Table1", acFormatXLS, "c:\temp\ExportedTable.xls"

या आप इस फ़ंक्शन का उपयोग कर सकते हैं:

सार्वजनिक समारोह Export_Table_Excel (स्ट्रिंग के रूप में तालिका का नाम, स्ट्रिंग के रूप में फ़ाइलपथ) DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, TableName, FilePath, True End Function 'उपयोग उदाहरण उप Export_Table_Excel_Example () Export_Table_Excel("Table1", "c:\temp\ExportedTable.xls") अंत उप

उपरोक्त कोड एक नई स्प्रेडशीट में निर्यात करेगा। इसके बजाय आप किसी मौजूदा स्प्रेडशीट में तालिका जोड़ सकते हैं। एक्सेस वीबीए में आयात / निर्यात पर हमारा लेख इसे और अधिक विस्तार से शामिल करता है।

तालिका में रिकॉर्ड जोड़ें/जोड़ें

यह फ़ंक्शन एक तालिका में एक रिकॉर्ड जोड़ / जोड़ देगा:

पब्लिक फंक्शन Append_Record_To_Table (तालिका नाम स्ट्रिंग के रूप में, फ़ील्डनाम स्ट्रिंग के रूप में, फ़ील्डवैल्यू स्ट्रिंग के रूप में) त्रुटि पर GoTo SubError Dim rs as DAO.Recordset Dim SQL as String Dim CurrentYear as Integer Set rs = CurrentDb.OpenRecordset(TableName) rs.AddNew rs(FieldName) .Value = FieldValue rs.Update rs.Close Set rs = कुछ भी नहीं SubExit: Exit Function SubError: MsgBox "RunSQL error:" & vbCrLf & Err.Number & ":" & Err.Description Resume SubExit End Function 'Use example Private Sub Append_Record_To_Table_Example () Append_Record_To_Table("Table1", "num", 3) End Sub . पर कॉल करें

प्रपत्र से तालिका में रिकॉर्ड जोड़ें

यह फ़ंक्शन किसी प्रपत्र से तालिका में एक रिकॉर्ड जोड़ देगा:

सार्वजनिक समारोह Add_Record_To_Table_From_Form(TableName as String) त्रुटि पर GoTo SubError Dim rs as DAO.Recordset Set rs = CurrentDb.OpenRecordset(TableName) rs.AddNew 'rs![Field1] = Value1 'rs![Field2] = Value2 'rs![ Field3] = Value3 rs.Update rs.Close Set rs = कुछ भी नहीं SubExit: Exit Function SubError: MsgBox "Refresh_Form error:" & vbCrLf & Err.Number & ":" & Err.Description End Function

आप साइट के विकास में मदद मिलेगी, अपने दोस्तों के साथ साझा करने पेज

wave wave wave wave wave