मैं कोई पहुँच टेबल एक्सेल से VBA का उपयोग कर ... किसी भी मदद के नाम बदलने का प्रयास?एक्सेल से वीबीए का उपयोग कर एक्सेस टेबल का नाम कैसे बदलें?
उत्तर
कैसे के बारे में:
Dim appAccess As Object
''acTable=0
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase "C:\Docs\LTD.mdb"
appAccess.DoCmd.Rename "NewTableName", 0, "OldTableName"
appAccess.Quit
Set appAccess = Nothing
यह अच्छा होगा अगर आपका कोड स्वयं के बाद साफ हो जाए, तो आपको नहीं लगता? –
@ डेविड डब्ल्यू फेंटन मैं इस धारणा के तहत था कि यह एक मंच था जहां अधिकांश भाग के लिए विचार पर्याप्त होना चाहिए और यहां तक कि एक-पंक्ति के जवाब भी पर्याप्त होंगे। – Fionnuala
@ डेविड डब्ल्यू फेंटन अगर आपको सच में लगता है कि यह महत्वपूर्ण है, तो जवाब संपादित करें और इसे स्वयं ठीक करें –
यहाँ मेरी कार्यक्रमों में से एक (जो अभी भी कंपनी में दैनिक उपयोग में है) से एक उदाहरण है। यह एक vb6 प्रोग्राम से लिया गया है, लेकिन vba में भी निष्पादित करता है। मैंने यह सुनिश्चित करने के लिए परीक्षण किया है।
इस उदाहरण में हमारे पास "mytable_tmp" नाम से एक अस्थायी तालिका है, जिसे नए डेटा के साथ अपडेट किया गया है और हम इसे "mytable" तालिका में बदलकर सहेजना चाहते हैं।
अपने एक्सेल VBA संपादक सेआपको निम्न दो प्रकार पुस्तकालयों के लिए एक संदर्भ सेट करना होगा:
- "Microsoft ActiveX डेटा ऑब्जेक्ट 2.8 लाइब्रेरी"
- "माइक्रोसॉफ्ट एडीओ Ext DDL के लिए 2.8 और। सुरक्षा "
पहला एडीओडीबी नेमस्पेस और दूसरा एडीओएक्स नेमस्पेस के लिए है। (हो सकता है कि आपके पास 2.5 या उससे पहले की तरह एमडीएसी का पहले संस्करण हो; यह भी काम करना चाहिए)।
Private Sub RenameTable()
Dim cn As New ADODB.Connection
Dim cat As ADOX.Catalog
Const sDBFile As String = "c:\et\dbtest.mdb"
On Error GoTo ErrH
With cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Mode = adModeShareDenyNone
.Properties("User ID") = "admin"
.Properties("Password") = ""
.Open sDBFile
End With
Set cat = New ADOX.Catalog
cat.ActiveConnection = cn
cat.Tables("mytable").Name = "mytable_old"
cat.Tables("mytable_tmp").Name = "mytable"
cat.Tables("mytable_old").Name = "mytable_tmp"
ExitHere:
If Not cn Is Nothing Then
If Not cn.State = adStateClosed Then cn.Close
Set cn = Nothing
End If
Set cat = Nothing
Exit Sub
ErrH:
Dim sMsg As String
sMsg = "Massive problem over here man."
sMsg = sMsg & vbCrLf & "Description : " & cn.Errors.Item(0).Description
MsgBox sMsg, vbExclamation
GoTo ExitHere
End Sub
सहायक होने की उम्मीद है।
ऐसा लगता है कि रेमो की तीन पंक्तियों के कोड पर इस लंबे समय से कोड का एकमात्र मूल्य तब होता है जब आपके पास एक्सेस इंस्टॉल नहीं होता है । –
यह एक ही कोड के भीतर केवल एक सीधी प्रति से अधिक करने का विकल्प देता है - और कौन जानता है, एक्सेल उपयोगकर्ता को एक्सेस तक पहुंच नहीं हो सकती है। फिर भी, आम तौर पर मुझे रेमो के दिखने को और अधिक उपयोग करने के लिए सहमत होना चाहिए। – mavnn
;) आप कैसे हैंडलिंग और उपयोगकर्ता संदेशों को शामिल करने की हिम्मत कैसे करते हैं। और यह सब प्रारूपण क्या है! (यदि आप स्टीवी की आवाज़ में करते हैं तो बहुत मजेदार)। +1 – JeffO
यहाँ ऊपर Remou के कोड में एक मामूली विकल्प नहीं है। मैं अपने गुणों और विधियों तक पहुंचने के लिए मुझे आवश्यक डेटाबेस खोलने के लिए खोल फ़ंक्शन का उपयोग करता हूं और फिर GetObject फ़ंक्शन का उपयोग करता हूं। यह इस तरह से कर रही है के लिए लाभ 1 कर रहे हैं) आप कैसे पहुँच आवेदन के लिए विंडो खुल जाएगा चुन सकते हैं। मेरे उद्देश्यों के लिए, मैं इसे छिपाना चाहता हूं। 2) मैं दोनों पहुँच है 2003 और 2007 स्थापित किया है और Remou की विधि 2003 का कारण बनता है खोलने के लिए, है जो मैं नहीं चाहता। मेरी विधि (मुझे लगता है) फ़ाइल खोलता है जो एक्सेस विंडोज़ के किसी भी संस्करण में खोलने के लिए इस्तेमाल होता था, जिस पर उपयोगकर्ता ने डबल क्लिक किया था।
नकारात्मक पक्ष यह है कि क्या आप वाकई डेटाबेस यह हेरफेर करने के लिए प्रयास करने से पहले खुला है चाहिए। मैं इससे निपटने के लिए एक सरल प्रतीक्षा सबराउटिन का उपयोग करता हूं, लेकिन आप अधिक परिष्कृत चीजें कर सकते हैं जो आप कर सकते हैं।
Sub Rename()
Dim ObjAccess As Object, MDB_Address As String, TaskID As Integer
MDB_Address = "C:\example.mdb"
TaskID = Shell("msaccess.exe " & Chr(34) & MDB_Address & Chr(34), vbHide)
Call Wait
Set ObjAccess = GetObject(MDB_Address)
ObjAccess.DoCmd.Rename "NewTableName", 0, "OldTableName"
ObjAccess.Quit
Set ObjAccess = Nothing
End Sub
Sub Wait()
Dim nHour As Date, nMinute As Date, nSecond As Date, waitTime As Date
nHour = Hour(Now())
nMinute = Minute(Now())
nSecond = Second(Now()) + 5
waitTime = TimeSerial(nHour, nMinute, nSecond)
Application.Wait waitTime
End Sub
- 1. एक्सेल फॉर्म बदलें चेकबॉक्स का नाम
- 2. एक्सेस वीबीए में एक्सेल ऑब्जेक्ट्स का संदर्भ कैसे लें?
- 3. वीबीए का उपयोग कर एक्सेल वर्कबुक की रक्षा कैसे करें?
- 4. एमएस-एक्सेस वीबीए (एडीओडीबी रिकॉर्डसेट का उपयोग कर) में एक्सेल वर्कशीट क्वेरी
- 5. चींटी का उपयोग कर फ़ोल्डर का नाम कैसे बदलें?
- 6. एक्सेल वीबीए
- 7. मैं एक्सेल वीबीए का उपयोग कर कुशलता से एक स्ट्रिंग को एन्कोड कैसे कर सकता हूं?
- 8. एक्सेल वीबीए
- 9. एक्सेल वीबीए
- 10. एक्सेल वीबीए
- 11. ग # का उपयोग कर एक्सेल
- 12. एक्सेल वीबीए
- 13. वीबीए (एक्सेल)
- 14. मैं वीबीए का उपयोग कर एक्सेल कोशिकाओं का पृष्ठभूमि रंग कैसे सेट करूं?
- 15. मैं एक्सेल वीबीए के भीतर से .NET ऑब्जेक्ट्स का उपयोग कैसे कर सकता हूं?
- 16. एक्सेल वीबीए
- 17. एक्सेल वीबीए
- 18. एक्सेस एसक्यूएल एमएस एक्सेस का उपयोग कर
- 19. एक्सेल वीबीए
- 20. एक्सेल वीबीए
- 21. एक्सेल वीबीए
- 22. एक्सेल वीबीए
- 23. वीबीए एक्सेल
- 24. एक्सेस वीबीए
- 25. एक्सेल वीबीए
- 26. फ़ाइल नाम का नाम बदलें
- 27. वीबीए का उपयोग कर एक कस्टम रिबन टैब कैसे जोड़ें?
- 28. वीबीए (एक्सेल)
- 29. एक्सेस 2007 वीबीए
- 30. एक्सएमएल नोड नाम का नाम कैसे बदलें
आप क्यों चाहते हैं? जब तक यह एक अस्थायी डेटा तालिका नहीं है। –