2012-02-28 31 views
7

मैंने काफी तीव्रता से देखा है, लेकिन एक ऐसी पोस्ट नहीं मिल सका जो मेरी समस्या को हल करती है।FileDialog काम नहीं करता

मेरे द्वारा बनाए गए फॉर्म के लिए निम्न कोड एक्सेस 2003 में काम करता है, जिसका उपयोग मैं काम पर करता हूं।

Dim FileName As FileDialog 
Set FileName = Application.FileDialog(msoFileDialogFilePicker) 
Dim Name As Variant 

With FileName 
    .AllowMultiSelect = False 
    .Show 
    If .SelectedItems.Count = 0 Then 
    MsgBox "No file selected." 
    Exit Sub 
    End If 
End With 

For Each Name In FileName.SelectedItems 
FileNameTextBox.Text = Mid$(Name, InStrRev(Name, "\") + 1) 
Next Name 

हालांकि, जब मैं अपने निजी कंप्यूटर पर पहुँच 2010 में एक फार्म पर एक ही कोड भागने की कोशिश की, यह work.The नहीं करता त्रुटि संदेश पहली पंक्ति पर प्रकाश डाला गया और कहते हैं, "उपयोगकर्ता-परिभाषित प्रकार परिभाषित नहीं । " मैंने FileName as Office.FileDialog घोषित करने का भी प्रयास किया, लेकिन कोई भाग्य नहीं। मेरे पास उपयोग में संदर्भों में से एक के रूप में माइक्रोसॉफ्ट एक्सेस 14.0 ऑब्जेक्ट लाइब्रेरी है, इसलिए मुझे नहीं पता कि इसमें क्या गलत है।

मैं केवल दो सप्ताह तक पहुंच का उपयोग कर रहा हूं, और मेरा पूरा ज्ञान गुगल से आता है, इसलिए यह बहुत संभव है कि मुझे कुछ स्पष्ट याद आ रही है।

+0

आप इसे कैसे बनाते हैं ताकि संपूर्ण फ़ाइल पथ टेक्स्ट बॉक्स में डाला जा सके? – Jim

उत्तर

17

FileDialog ऑब्जेक्ट एक्सेस लाइब्रेरी द्वारा प्रदान नहीं किया गया है, लेकिन Office लाइब्रेरी द्वारा। इसलिए यदि आप माइक्रोसॉफ्ट ऑफिस [संस्करण संख्या] ऑब्जेक्ट लाइब्रेरी का संदर्भ सेट करते हैं तो आपका कोड काम करना चाहिए। या तो आपके पास उस संदर्भ सेट नहीं है, या यह टूटा हुआ है।

हालांकि अगर यह मैं था, तो मैं संदर्भ को इस तरह के कोड को अनसेट और संशोधित छोड़ दूंगा। देखें कि यह आपके लिए काम करता है या नहीं।

Const msoFileDialogFilePicker As Long = 3 
Dim objDialog As Object 

Set objDialog = Application.FileDialog(msoFileDialogFilePicker) 

With objDialog 
    .AllowMultiSelect = False 
    .Show 
    If .SelectedItems.Count = 0 Then 
     MsgBox "No file selected." 
    Else 
     Me.FileNameTextBox.Value = Dir(.SelectedItems(1)) 
    End If 
End With 
+0

अब यह काम कर रहा है! बहुत बहुत धन्यवाद!! हालांकि मैं अभी भी परेशान हूं कि यह पहले क्यों काम नहीं करता क्योंकि मेरे पास उपयोग में 14.0 ऑब्जेक्ट लाइब्रेरी थी। – Emily

0

उपकरण में, संदर्भ ..., आप के बजाय माइक्रोसॉफ्ट एक्सेस एक की "माइक्रोसॉफ्ट कार्यालय 14.0 ऑब्जेक्ट लायब्रेरी" का चयन करने के लिए है।

संबंधित मुद्दे