Chào mừng đến với Diễn đàn Dân Kế Toán - Kế toán tổng hợp thực tế.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 14
  1. #1
    Ngày tham gia
    Nov 2015
    Bài viết
    0

    mở file Word có điều kiện từ combobox thì làm sao đây?

    mở file Word có điều kiện thì phải làm sao hả các Bác?

    vd: mình có 1 combobox có tên là cbchonmamon, trong đây e chứa MaMon từ Table trong e đã tạo, 1 nút commandbutton có tên là btxemnd và 1 số file Word chứa nội dung bài giảng của một số Môn học.

    Lúc đầu e làm 1 form có tên là formxemndbaigiang, và gán một số Môn tương ứng với file Word e đang có, còn những Môn khác thì không có và e viết code này để đọc nội dung file Word khi tìm thấy điều kiện đúng, đoạn code như sau:

    private sub btxemnd_Click()
    Dim ht, congviec As String
    congviec = Me.cbmonhoc.Value
    Select Case congviec
    Case "M02"
    If MsgBox("Ban co muon xem Noi Dung Mon nay khong?", vbQuestion + vbYesNo, "HOI LAI") = vbYes Then
    ht = Shell("WinWord.exe D:hichic:

    Mong các Bác nào pro giúp e việc này, e xin thank trước!!!!

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?




    Trích dẫn Gửi bởi nttien1234
    mở file Word có điều kiện thì phải làm sao hả các Bác?

    Xem đoạn code thì các Bác đã hiểu e muốn làm j rồi phải ko, nhưng e muốn là khi 1 ng khác cập nhật thêm 1 Môn mới thì làm sao khi ng đó click nút btxemnd thì nó hiểu để mở file Word của Môn đó lên, chẳng lẽ mỗi lần cập nhật một Môn mới thì phải 1 lần viết code àh,:hichic:

    Mong các Bác nào pro giúp e việc này, e xin thank trước!!!!
    Để người sử dụng (NSD) có thể tự cập nhật thêm môn mới thì bạn phải tạo 1 form cập nhật môn học (cái này mình nghĩ là bạn đã làm được rồi), mình có một vài gợi ý để bạn thực hiện được yêu cầu như sau:

    1. Trong Table Danh sách môn học, bạn thêm một trường là FileName để chứa tên file word của môn học đó. Mục đích là khi NSD chọn mã môn học thì bạn đã có tên file .doc tương ứng của môn học này rồi và sẽ mở nó ra. Hàm để xác định tên file word thông qua mã môn học bạn viết như sau:

    Function fTenFile(MaMon)
    Dim db As Database, Rec As Recordset, mMaMon As String
    If IsNull(MaMon) Or MaMon = "" Then
    fTenFile = ""
    Exit Function
    End If
    mMaMon = Trim$(MaMon)
    Set db = CurrentDB()
    Set Rec = db.OpenRecordset("tblDSMonHoc", DB_OPEN_DYNASET)
    Rec.FindFirst "mMaMon='" & MaMon & "'"
    If Rec.NoMatch Then
    fTenFile = Null
    Else
    fTenFile = Rec!FileName
    End If
    Rec.Close
    Set db = Nothing
    End Function

    2. Bạn sử dụng hàm để kiểm tra sự tồn tại của 1 file như sau:

    Function fTonTaiTep(Path As String) As Boolean
    If Dir$(Path) = "" Then
    fTonTaiTep = False
    Else
    fTonTaiTep = True
    End If
    End Function

    3. Bạn nên dùng phương thức CurrentProject.Path để xác định đường dẫn chứa các file .doc. Như vậy khi NSD sao chép chương trình đi bất kỳ vị trí nào trong máy thì chương trình của bạn vẫn chạy mà không phải sửa lại code.



    *** Với ý tưởng của mình thì thủ tục btxemnd_Click sẽ như sau:

    private sub btxemnd_Click()
    Dim Tenfile As String

    TenFile =CurrentProject.Path & fTenFile(Me.cbmonhoc.Value) & ".DOC"

    if fTonTaiTep(TenFile) then
    Shell "WinWord.exe " & TenFile, vbMaximizedFocus
    else
    MsgBox "Mon nay chua co Noi Dung", vbInformation, "THONG BAO"
    end if
    End Sub


    Chúc thành công!

  3. #3
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?

    bài viết rất hay, mình xin thank bạn trước, để mình làm thử rùi có j mình pm bạn sau!!!!:noinhiu:

    thank you very much!!!
    -----------------------------------------------------------------------------------------



    Trích dẫn Gửi bởi dongnamnb
    1. Trong Table Danh sách môn học, bạn thêm một trường là FileName để chứa tên file word của môn học đó. Mục đích là khi NSD chọn mã môn học thì bạn đã có tên file .doc tương ứng của môn học này rồi và sẽ mở nó ra. Hàm để xác định tên file word thông qua mã môn học bạn viết như sau:

    Function fTenFile(MaMon)
    Dim db As Database, Rec As Recordset, mMaMon As String
    If IsNull(MaMon) Or MaMon = "" Then
    fTenFile = ""
    Exit Function
    End If
    mMaMon = Trim$(MaMon)
    Set db = CurrentDB()
    Set Rec = db.OpenRecordset("tblDSMonHoc", DB_OPEN_DYNASET)
    Rec.FindFirst "mMaMon='" & MaMon & "'"
    If Rec.NoMatch Then
    fTenFile = Null
    Else
    fTenFile = Rec!FileName
    End If
    Rec.Close
    Set db = Nothing
    End Function

    Chúc thành công!
    Bác có thể nói cụ thể lại phần này được không, mình ko rõ lắm?

    Cái form để cập nhật Môn Học thì mình làm rùi, còn trong bảng Danh sách Môn Học mình thêm trường là fileName và chứa "tên file Word àh hay là nguyên 1 file Word luôn"???? Mình pó tay khúc này rùi, đoạn code của Bác đưa cho mình chạy thì nó bào lỗi này nè:

    Run-time error: '3070'

    The Microsoft Jet Database engine does not recognize 'mMaMon' as a vaild field name or expression.

    và nó tô sáng cái dòng này nè:

    Function fTenFile(mamon1)
    Dim db As Database, Rec As Recordset, mMaMon As String
    If IsNull(mamon1) Or mamon1 = "" Then
    fTenFile = ""
    Exit Function
    End If
    mMaMon = Trim$(mamon1)
    Set db = CurrentDb()
    Set Rec = db.OpenRecordset("T_DMMonHoc", DB_OPEN_DYNASET)
    Rec.FindFirst "mMaMon='" & mamon1 & "'"
    If Rec.NoMatch Then
    fTenFile = Null
    Else
    fTenFile = Rec!fileName
    End If
    Rec.Close
    Set db = Nothing
    End Function

    Giờ e cũng ko biết sao luôn.Mong bác giúp e với, e thank bác nhìu lắm!!!!!!

  4. #4
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?

    mMaMon: là tên của 1 biến nhớ.
    MaMon mới là tên của 1 filed trong T_DMMonHoc .

    Sửa lại câu đó là:

    Rec.FindFirst "MaMon='" & mMaMon & "'"

  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?




    Trích dẫn Gửi bởi muontennguoi
    mMaMon: là tên của 1 biến nhớ.
    MaMon mới là tên của 1 filed trong T_DMMonHoc .

    Sửa lại câu đó là:

    Rec.FindFirst "MaMon='" & mMaMon & "'"
    e đã sửa lại chỗ đó như Bác muontennguoi nói, và nó bào lỗi là:

    Run-time error: '3265'

    Item not found in this collection.

    vậy theo Bác e nên thêm file Word vào trường tên là fileName như Bác dongnamnb nói thì phải làm sao??? E ko hiểu phần này nè!!!

    theo e nghĩ thì lỗi này nó ko tìm thấy file Word nào để mở phải ko Bác? và e muốn thêm file Word vô trường là fileName thì phải làm sao?:gaitai:

  6. #6
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?




    Trích dẫn Gửi bởi nttien1234
    e đã sửa lại chỗ đó như Bác muontennguoi nói, và nó bào lỗi là:

    Run-time error: '3265'

    Item not found in this collection.

    vậy theo Bác e nên thêm file Word vào trường tên là fileName như Bác dongnamnb nói thì phải làm sao??? E ko hiểu phần này nè!!!

    theo e nghĩ thì lỗi này nó ko tìm thấy file Word nào để mở phải ko Bác? và e muốn thêm file Word vô trường là fileName thì phải làm sao?:gaitai:
    giả sử bạn có T_DMMonHoc gồm 2 field là : MaMon và TenMonHoc


    Như vậy nếu muốn thêm môn học mới thì bạn sẽ tạo 1 cái Form để cho người ta cập nhật vào.

    Bây giờ thêm 1 field và cũng cập nhật bằng cách dùng lại form đó (thêm 1 field nữa thôi) sao cho người dùng sẽ cập nhật table có dạng:

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    85
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?




    Trích dẫn Gửi bởi nttien1234
    e đã sửa lại chỗ đó như Bác muontennguoi nói, và nó bào lỗi là:

    Run-time error: '3265'

    Item not found in this collection.

    vậy theo Bác e nên thêm file Word vào trường tên là fileName như Bác dongnamnb nói thì phải làm sao??? E ko hiểu phần này nè!!!

    theo e nghĩ thì lỗi này nó ko tìm thấy file Word nào để mở phải ko Bác? và e muốn thêm file Word vô trường là fileName thì phải làm sao?:gaitai:
    Bạn có thể lưu file word vào một trường cũng được, tuy nhiên với ý tưởng ở trên thì mình chỉ cần lưu tên file word trong trường filename thôi. Bạn lưu ý phải nhập chính xác tên file lưu trong trường filename và tên file word ở ngoài.

    Lỗi ở trên bạn sửa MaMon = Tên trường mã môn trong table của bạn và mMaMon = MaMon nhé. Thế này này:

    Rec.FindFirst "Tên trường mã môn trong table của bạn='" & MaMon & "'"

    Các thủ tục ở trên cũng chưa được test thử nên sẽ có lỗi. bạn khai báo lại biến và sửa lại tên trường đúng với CSDL của bạn thì sẽ chạy.

    Nếu cần bạn cứ up lên đây, mọi người sẽ giúp bạn

  8. #8
    Ngày tham gia
    Nov 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?

    xin thank Bác dongnamnb trước, để mình test thử coi, rồi báo cho Bác biết!!!

    thank you very much!!!:dangyeu:
    -----------------------------------------------------------------------------------------
    mình đã sửa lại như bạn nói và nó ko còn báo lỗi nữa, nhưng gặt nổi khi bấm nút cmdxemnd thì nó ko chịu mở file Word lên mà nó cứ báo là: Khong tim thay noi dung mon nay, mình cũng đành pó tay phần này rồi.

    Nay mình up file lên mong bạn và các Bác nào pro trong diễn đàn giúp mình với:sohappy:

    Link đây:
    http://www.mediafire.com/download.php?z1jndnjzkzn

    Trong file mình đã tạo 1 table là BaiGiangGV và chỉ có 3 trường: MaBG, TenBG, NoiDung, tại mình nghĩ để vào table DMMonHoc thì nó dài quá nên mình tách ra vậy cho dễ quản lý một chút ấy mà,trong form mình cũng đã tạo 1 form và đưa table đó vào, code thì mình cũng đã làm sẵn hết, mong các Bác pro xem và giúp mình với!!!

    Mình xin thank các pro trước nha!!!:ngaytho:

  9. #9
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?

    ko ai giúp e hết hả??? Bùn như con chuồn chuồn luôn???
    :k4929481:

  10. #10
    Ngày tham gia
    Nov 2015
    Bài viết
    1
    Ðề: mở file Word có điều kiện từ combobox thì làm sao đây?

    Bạn sửa lại 1 chút:

    Private Sub cmdxemnd_Click()
    Dim Tenfile As String
    Tenfile = CurrentProject.Path & "\" & fTenFile(Me.mabg1.Value) & ".DOC"
    If fTonTaiTep(Tenfile) Then
    Shell "WinWord.exe " & """" & Tenfile & """", vbMaximizedFocus
    Else
    MsgBox "Mon nay chua co Noi Dung", vbInformation, "THONG BAO"
    End If
    End Sub


    1/. thiếu dấu chéo, chuyện này chắc dễ hiểu.
    2/. nếu tên file hoặc folder có chứa khoảng trống (VD "C:-/Document and Setting\") bạn phải bao nó lại bằng dấu nháy kép thì máy mới hiểu tòan bộ trong ngoặc đó là 1 tham số duy nhất.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •