2012-12-10 97 views
0

用於在Windows XP上工作的打開/保存對話框不再適用於我的Windows 7 64位。我聽說'MSComDlg.CommonDialog'與64位不兼容。這是我的老代碼:與Windows 64位兼容的打開/保存文件對話框

' Sub to show open/save dialog 
SUB OpenSave (varOpenSaveInputBox, varOpenSaveType, varOpenSaveFilter) 
    ' Create object 
    SET objComDlg32 = CreateObject("MSComDlg.CommonDialog") 
    ' Set memory buffer 
    objComDlg32.MaxFileSize = 260 
    ' Set filter 
    objComDlg32.Filter = varOpenSaveFilter 
    ' Show dialog 
    IF varOpenSaveType = 0 Then 
     objComDlg32.ShowOpen 
    ELSE 
     objComDlg32.ShowSave 
    End IF  
    ' Get filename from dialog 
    strOpenSave = objComDlg32.FileName 
    ' Check IF dialog is cancelled 
    IF strOpenSave <> vbNullString Then 
     ' Set to variable 
     objOpenSave.SetContent strOpenSave, TRUE 
    End If 
END SUB 

我真的很感激,如果你更具體的答案,而不是「使用這個!」。 DLL和OCX並不是我的強項。謝謝。

+0

這是什麼意思「不再起作用」?我不是Win7 64位的問題。你有哪些辦公室版本?你必須有開發者版本。 – dee

+3

什麼語言? vba,vbscript和activex都是不同的技術 – SeanC

+0

@DanielDusek我沒有在辦公室使用它,我在QlikView中使用它。我需要一個在win7 64位下工作的開放文件對話框。如果你知道'MSComDlg.CommonDialog'的替代品,我將不勝感激。 – Disasterkid

回答

0

這是VBA,但它可能足以指向正確的方向。 3聲明你想打開的對話類型。你可以在這裏找到更多的信息:http://msdn.microsoft.com/en-us/library/office/ff865284.aspx

Sub FileSelect (Multi as Boolean) 
'Set Dlg = Application.FileDialog(msoFileDialogFilePicker) 
Set Dlg = Access.Application.FieDlialog(3) 
With Dlg 
    .Title = "Select the file you want to open" 
    .AllowMultiSelect = Multi 
    If .show = -1 Then 
     txtFilePath = .InitialFileName 
    Else 
     Exit Function 
    End If 
End With 

FileSelect = Dlg.selecteditems(1) 
End function