-
Tham so trong lenh Call Shell
vodainhan > 05-07-18, 12:19 PM
VBA Access: Nhờ giúp đưa tham số vào hàm Call Shell để mở file Excel! Thanks!
Private Sub cmdOpenExcel_Click()
Dim s As String
s = Application.CurrentProject.Path & "\BC_Thang_Phong_KT.xlsx"
Call Shell("EXCEL ""s", 1) 'error
End Sub -
RE: Tham so trong lenh Call Shell
ongke0711 > 05-07-18, 01:18 PM
(05-07-18, 12:19 PM)vodainhan Đã viết: VBA Access: Nhờ giúp đưa tham số vào hàm Call Shell để mở file Excel! Thanks!
Private Sub cmdOpenExcel_Click()
Dim s As String
s = Application.CurrentProject.Path & "\BC_Thang_Phong_KT.xlsx"
Call Shell("EXCEL ""s", 1) 'error
End Sub
Sửa code này:
Call Shell("Excel.exe " & s, 1)
- Có khoảng trắng sau chữ '.exe'
- Bạn đã truyền tham số "s" là biến chuỗi vô câu lệnh thì đóng ngoặc kép nó làm gì. -
RE: Tham so trong lenh Call Shell
vodainhan > 05-07-18, 02:05 PM
(05-07-18, 01:18 PM)ongke0711 Đã viết:
(05-07-18, 12:19 PM)vodainhan Đã viết: VBA Access: Nhờ giúp đưa tham số vào hàm Call Shell để mở file Excel! Thanks!
Private Sub cmdOpenExcel_Click()
Dim s As String
s = Application.CurrentProject.Path & "\BC_Thang_Phong_KT.xlsx"
Call Shell("EXCEL ""s", 1) 'error
End Sub
Sửa code này:
Call Shell("Excel.exe " & s, 1)
- Có khoảng trắng sau chữ '.exe'
- Bạn đã truyền tham số "s" là biến chuỗi vô câu lệnh thì đóng ngoặc kép nó làm gì.
đã thử rồi mà không được đó chứ. nó bị lỗi.
vd: đường dẫn: D:\Khoa hoc\Baocao|BC_thang.xlsx
nó có nhiều thông báo lỗi: không tìm thấy D:\khoa.xlsx. , không tìm thấy D:\hoc.xlsx ... -
RE: Tham so trong lenh Call Shell
ongke0711 > 05-07-18, 02:29 PM
Bạn phải xem lại biến 's' của bạn.
Bạn khai báo: s = Application.CurrentProject.Path & "\BC_Thang_Phong_KT.xlsx" --> tức là file Excel này phải nằm trong cùng một folder chứa cái ứng dụng Access này thì nó mới tìm thấy chứ (Application.CurrentProject.Path). -
RE: Tham so trong lenh Call Shell
vodainhan > 05-07-18, 03:24 PM
(05-07-18, 02:29 PM)ongke0711 Đã viết: Bạn phải xem lại biến 's' của bạn.
Bạn khai báo: s = Application.CurrentProject.Path & "\BC_Thang_Phong_KT.xlsx" --> tức là file Excel này phải nằm trong cùng một folder chứa cái ứng dụng Access này thì nó mới tìm thấy chứ (Application.CurrentProject.Path).
CHÍNH XÁC LÀ NHƯ VẦY:
File Access: D:\Khoa hoc\TestCallShell.accdb
file Excel: D:\Khoa hoc\Bao cao\BC_Thang.xlsx
code 1 nút lệnh trên form (đã kiểm tra kỹ, sửa lại vẫn bị lỗi không rõ sai chỗ nào):
Private Sub cmdOpenExcel_Click()
Dim s As String
s = Application.CurrentProject.Path & "\Bao cao\BC_Thang.xlsx"
Call Shell("EXCEL.exe " & s, 1)
End Sub
Bác test lại giúp, cám ơn thật nhiều! -
RE: Tham so trong lenh Call Shell
Xuân Thanh > 05-07-18, 03:53 PM
Hình như Tên Thư Mục và Tên File không được có khoảng trắng khi tham chiếu bằng Shell thì phải -
RE: Tham so trong lenh Call Shell
ongke0711 > 05-07-18, 04:13 PM
Đúng như bác Xuân Thanh nói. Shell script không dùng được các tên folder, file có khoảng trắng.
Nếu không muốn đổi tên file. thư mục thì bạn dùng code của bạn maidinhdan theo llink bên dứoi.
Link: http://thuthuataccess.com/forum/thread-8444.html -
RE: Tham so trong lenh Call Shell
MTNQ > 05-07-18, 05:19 PM
(05-07-18, 03:24 PM)vodainhan Đã viết: CHÍNH XÁC LÀ NHƯ VẦY:
File Access: D:\Khoa hoc\TestCallShell.accdb
file Excel: D:\Khoa hoc\Bao cao\BC_Thang.xlsx
code 1 nút lệnh trên form (đã kiểm tra kỹ, sửa lại vẫn bị lỗi không rõ sai chỗ nào):
Private Sub cmdOpenExcel_Click()
Dim s As String
s = Application.CurrentProject.Path & "\Bao cao\BC_Thang.xlsx"
Call Shell("EXCEL.exe " & s, 1)
End Sub
Bác test lại giúp, cám ơn thật nhiều!
Nếu trong đường dẫn hoặc thư mục có khoảng trắng thì bạn phải bỏ vào ngoặc kép:
Mã:Private Sub cmdOpenExcel_Click()
Dim s As String
s = Chr(34) & Application.CurrentProject.Path & "\Bao cao\BC_Thang.xlsx" & Chr(34)
'Debug.Print s
Call Shell("EXCEL.exe " & s, 1)
End Sub -
RE: Tham so trong lenh Call Shell
Xuân Thanh > 05-07-18, 05:46 PM
(05-07-18, 05:19 PM)MTNQ Đã viết:
(05-07-18, 03:24 PM)vodainhan Đã viết: CHÍNH XÁC LÀ NHƯ VẦY:
File Access: D:\Khoa hoc\TestCallShell.accdb
file Excel: D:\Khoa hoc\Bao cao\BC_Thang.xlsx
code 1 nút lệnh trên form (đã kiểm tra kỹ, sửa lại vẫn bị lỗi không rõ sai chỗ nào):
Private Sub cmdOpenExcel_Click()
Dim s As String
s = Application.CurrentProject.Path & "\Bao cao\BC_Thang.xlsx"
Call Shell("EXCEL.exe " & s, 1)
End Sub
Bác test lại giúp, cám ơn thật nhiều!
Nếu trong đường dẫn hoặc thư mục có khoảng trắng thì bạn phải bỏ vào ngoặc kép:
Mã:Private Sub cmdOpenExcel_Click()
Dim s As String
s = Chr(34) & Application.CurrentProject.Path & "\Bao cao\BC_Thang.xlsx" & Chr(34)
'Debug.Print s
Call Shell("EXCEL.exe " & s, 1)
End Sub
Lão MTNQ này nhanh tay thiệt. Đang tính nhắc thì thấy bài của lão. Hêhê