• Tham so trong lenh Call Shell
  • 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ê 015
  • RE: Tham so trong lenh Call Shell

    MTNQ > 05-07-18, 09:15 PM

    (05-07-18, 05:46 PM)Xuân Thanh Đã viết: 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ê 015

    005
    Cũng sắp thành "Lão" rùi, mà "lão"  thì "chân chậm mắt mờ" chứ cũng còn "nhanh tay" lém  014