VicoTas
Câu hỏi
Vinh tranquangvinh
26/04/2013 21:01

. Chương trình chạy tốt trên Windows 9x nhưng trên Windows XP thì không xuất hiện hộp thoại theo yêu cầu?

Tôi thực hiện chương trình tiện ích trong Access 97 dùng hàm API GetOpenFilename để mở hộp thoại chọn file ảnh (khai báo Type và Function đầy đủ theo file comdlg32.dll). Chương trình chạy tốt trên Windows 9x nhưng trên Windows XP thì không xuất hiện hộp thoại theo yêu cầu.

Danh sách câu trả lời (1)
Đức Cảnh duccanh 26/04/2013 21:01
Để hiển thị cửa sổ duyệt và chọn file từ 1 form VB hay VBA, bạn có thể dùng đối tượng sẵn có của Microsoft tên là "Microsoft Common Dialog Control", version được dùng khá phổ biến là 6.0 có thể chạy tốt trên cả 2 môi trường Win9x và WinXP. Sau đây chúng tôi xin trình bày qui trình điển hình để hiển thị cửa sổ duyệt file trong 1 form VBA trong Access:

1. Chạy Access, mở file *.mdb cần xử lý.

2. Chọn mục Forms để hiển thị các form đã được thiết kế, bạn có thể tạo mới 1 form hay dùng lại 1 form cũ có sẵn.

3. Chọn menu Insert.ActiveX Control để hiển thị cửa sổ Insert ActiveX Control, duyệt tìm trong danh sách và chọn hàng Microsoft Common Dialog Control version 6.0. Ấn phải chuột trên icon vừa tạo trong form, chọn mục Properties để hiển thị cửa sổ thuộc tính của nó, chọn tab All, thay đổi giá trị của thuộc tính Name thành cdlg.

4. Tạo 1 textbox và đặt tên là "txtImport" (ấn phải chuột trên textbox, chọn mục Properties để hiển thị cửa sổ thuộc tính của textbox, chọn tab All, thay đổi giá trị của thuộc tính Name thành txtImport).

5. Tạo 1 command button, cửa sổ "Command button Wizard" sẽ tự hiển thị, bạn chọn Cancel để đóng lại. Ấn phải chuột chọn mục Build Events để hiển thị cửa sổ Choose Builder, chọn mục Code Builder để tạo hàm xử lý sự kiện click chuột kết hợp với button, cửa sổ soạn code sẽ hiển thị để giúp bạn viết code cho hàm vừa tạo ra.

6. chọn menu Tools.References để hiển thị cửa sổ References, duyệt trong danh sách và chọn hàng Microsoft Common Dialog Control version 6.0.

7. Viết code sau đây để hiển thị cửa sổ duyệt file, chờ người dùng chọn file rồi gán đường dẫn file được chọn sang textbox:

' hàm xử lý sự kiện ấn chuột vào button Command0
Private Sub Command0_Click()
Dim cdlg As CommonDialog
Set cdlg = Me.cdlg.Object

' Thiết lập 1 số thuộc tính cần dùng cho đối tượng cdlg
With cdlg
.DialogTitle = "Open file anh"
.Filter = "Anh BMP|*.bmp|Anh JPEG|*.jpg|Anh GIG|*.gif"
.CancelError = True

' hiển thị cửa sổ duyệt file và chờ người dùng chọn file
.ShowOpen

' copy đường dẫn file được chọn sang textbox
Me.txtImport = .FileName
End With
Set cdlg = Nothing
Exit Sub
' phần xử lý lỗi
ErrorHandling:
If Err = 32755 Then
Exit Sub
Else
MsgBox Err & ": " & Err.Description
End If
End Sub

8. Chạy Form vừa thiết kế và xem kết quả. Lưu ý đoạn code trên đã chạy tốt trên Access 2000 và Access XP, vì Access 97 quá cũ nên chúng tôi không có điều kiện kiểm tra, nhưng hy vọng nó cũng sẽ chạy tốt nếu máy bạn đã cài ActiveX Control "Microsoft Common Dialog Control version 6.0".
Trả lời câu hỏi
Tải lại mã
Câu hỏi lĩnh vực Lập trình
Lê Thị Hoa Hồng Xin hỏi cách thay đổi hình dạng các button trên Form trong Borland Delphi 5.0?

Đăng lúc: 21:01 - 26/04/2013 trong Lập trình

nophoto Cách thức viết chương trình Visual Basic sử dụng ngắt?

Đăng lúc: 21:01 - 26/04/2013 trong Lập trình

nophoto Xin hỏi cách đọc dữ liệu từ file Excel, Text rồi đẩy vào database bằng ngôn ngữ ASP.NET?

Đăng lúc: 21:01 - 26/04/2013 trong Lập trình

Đức Cảnh Làm thế nào để chương trình hiện ở System tray?

Đăng lúc: 21:01 - 26/04/2013 trong Lập trình

NgocUk Tôi muốn viết chương trình Assembly hiển thị giờ như đồng hồ điện tử nhưng gặp khó khăn trong việc cập nhật phút giây và thiết lập font chữ phóng to?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

nophoto Lập trình giao diện Winform với VB.Net, làm sao để có được giao diện (button, textbox) giống như style của XP mà ko phụ thuộc vào theme của HĐH ?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

nophoto Xin hướng dẫn cách hook bàn phím và thay thế ký tự gõ vào trong ngôn ngữ Delphi?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Mạnh Linh Lập trình bằng C/C++ for DOS, làm sao để chương trình chạy n lệnh cùng một lúc?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Lê Thị Hoa Hồng Xin hướng dẫn cách xử lý đọc mã vạch với Visual Foxpro?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Nguyễn Văn Siêu Xin hướng dẫn cách kết nối VC++ 6.0 và CSDL Oracle 8i?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Lê Văn Tùng Xin hướng dẫn đoạn code C++ thực hiện thu âm thanh từ microphone?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Uk Khi DataEnvironment trong VB6 kết nối CSDL SQL thì đã có sẵn RecordSet hay chưa?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Ngô Minh Tùng Xin hướng dẫn cách tạo một rubic trên đó có các ảnh ở mỗi mặt và có thể chuyển động được?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

nophoto Xin hướng dẫn cách tạo menu bằng lệnh trong VC++ 6.0, tôi mới bắt đầu lập trình C trên môi trường Win32?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Thu Trang Xin chỉ cách thể hiện công thức toán học trong lập trình C và PHP?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Lê Văn Tùng Xin hỏi cách lập trình giao tiếp với phần cứng trong Windows? Trực tiếp hay thông qua API?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Ngô Minh Tùng Để vẽ hình vuông trong VC++ thì phải làm những bước gì?

Đăng lúc: 21:00 - 26/04/2013 trong Lập trình

Đức Việt Xin hỏi cách chuyển ứng dụng viết bằng Java được soạn bằng môi trường EditPlus sang môi trường JBuilder?

Đăng lúc: 20:59 - 26/04/2013 trong Lập trình

Link Sử dụng hàm nào trong C++, VB, JAVA ... để xác định được chuột và bàn phím có bấm nút?

Đăng lúc: 20:59 - 26/04/2013 trong Lập trình

nophoto Xin tư vấn nên học C# hay Java, và những ưu nhược điểm của 2 ngôn ngữ này?

Đăng lúc: 20:59 - 26/04/2013 trong Lập trình

Rao vặt Siêu Vip