• Thông báo lỗi khi mất mạng
  • Thông báo lỗi khi mất mạng

    yamakashi2003 > 11-10-20, 02:46 PM

    Em chào các bác ạ,
    em có 1 file access accdb, được chia làm 2 phần BE và FE,
    File BE thì share vào mạng lan
    Nhờ các bác chỉ giúp em cách báo lỗi trên form: để khi mạng Lan bị mất, file FE không kết nốii được đến file BE, thì sẽ hiện thông báo 
    Msgbox "mất mạng Lan"
    Em xin cảm ơn ạ
  • RE: Thông báo lỗi khi mất mạng

    tranthanhan1962 > 12-10-20, 08:31 AM

    Bạn có thể xử dụng phương pháp này: Giả sử BE của bạn nằm trên Ổ D của server \\server\D:\

    Sub Test_Connection()
         If (Len(Dir("\\server\D:\))) Then
           MsgBox "Có mạng Lan"
         Else
           MsgBox "Mất mạng Lan"
         End If
    End Sub
  • RE: Thông báo lỗi khi mất mạng

    yamakashi2003 > 12-10-20, 11:05 AM

    (12-10-20, 08:31 AM)tranthanhan1962 Đã viết: Bạn có thể xử dụng phương pháp này: Giả sử BE của bạn nằm trên Ổ D của server \\server\D:\

    Sub Test_Connection()
         If (Len(Dir("\\server\D:\))) Then
           MsgBox "Có mạng Lan"
         Else
           MsgBox "Mất mạng Lan"
         End If
    End Sub
    Em cám ơn bác, 
    Nhưng cách này có vẻ hơi thủ công ạ,
    Hy vọng trong tương lai bác và anh em trong group có thể tìm ra giải pháp mới
    Em xin cảm ơn 015 015
  • RE: Thông báo lỗi khi mất mạng

    tranthanhan1962 > 12-10-20, 02:17 PM

    Thủ công hay tự động là do bạn chứ không phải do code VBA.  005
  • RE: Thông báo lỗi khi mất mạng

    ongke0711 > 12-10-20, 03:53 PM

    (12-10-20, 11:05 AM)yamakashi2003 Đã viết:
    (12-10-20, 08:31 AM)tranthanhan1962 Đã viết: Bạn có thể xử dụng phương pháp này: Giả sử BE của bạn nằm trên Ổ D của server \\server\D:\

    Sub Test_Connection()
         If (Len(Dir("\\server\D:\))) Then
           MsgBox "Có mạng Lan"
         Else
           MsgBox "Mất mạng Lan"
         End If
    End Sub
    Em cám ơn bác, 
    Nhưng cách này có vẻ hơi thủ công ạ,
    Hy vọng trong tương lai bác và anh em trong group có thể tìm ra giải pháp mới
    Em xin cảm ơn 015 015

    Anh tranthanhan1962 đã hướng dẫn bạn kỹ thuật chính để kiểm tra rồi, giờ chỉ còn biến hoá theo hoàn cảnh thực tế, qui trình hoạt động của ứng dụng của bạn mà áp dụng vô thôi chứ chẳng lẻ bạn trông chờ mọi người viết cho bạn từ a - z.
    Có nhiều vấn đề xung quanh cái ứng dụng của bạn, ý đồ kiểm tra kết nối của bạn ra sao, chỉ có bạn biết thì bạn xây dựng qui trình kiểm tra theo đó.
    Ví dụ: Bạn muốn kiểm tra khi nào?
    - Khi ứng dụng khởi động -> vậy ứng dụng của bạn có frmSplash chạy trước hay frmLogin chạy trước, lồng ghép kiểm tra ở giai đoạn nào bạn cho phù hợp với bạn.
    - Trong quá trình ứng dụng hoạt động có cần kiểm tra không? muốn kiểm tra thì kiểm tra ở quy trình nào?
    - Kiểm tra xong làm cái gì?
    Những câu hỏi trên chỉ có bạn là người thiết kế mới định hướng cho nó chứ ai mà biết mà làm cho bạn.
    Đưa cái cần câu rồi, bạn tự câu cá đi nhé.
  • RE: Thông báo lỗi khi mất mạng

    maidinhdan > 12-10-20, 09:16 PM

    Khuyến nghị không nên dùng hàm Dir để kiểm tra
    Lý do: nếu máy cần kiểm tra tắt thì thời gian chạy cũng lên đến 1-2 phút (ứng dụng bạn sẽ bị treo)

    Xem bài viết này: [Hàm] [Demo] Hàm kiểm tra IP tắt hay mở

    [Hình: HinhIPtathaymo.png]
  • RE: Thông báo lỗi khi mất mạng

    ongke0711 > 12-10-20, 10:04 PM

    Ứng dụng của tôi thì kỹ hơn, làm tới 2 bước: bước 1 là kiểm tra máy chủ có mở không (IP); bước 2 là kiểm tra đường dẫn có còn sống không (dùng Dir) vì có khi người ta sắp xếp lại folder chứa file BE.

    Mã PHP:
    If CheckIPOnline(strServerNameThen  'Neu may chu mo nhung duong dan bi sai'
            If Len(Dir(strServerName "\" & strDatabaseName, vbDirectory)) = 0 Then
            .... 
  • RE: Thông báo lỗi khi mất mạng

    tranthanhan1962 > 12-10-20, 10:24 PM

    OK! Lệnh command frompt chắc chắn nhanh hơn hàm VBA! Nhưng mình không thấy có việc hàm Dir chạy chậm đến 1-2 phút. Mình cũng viết nhiều ứng dụng chạy mạng LAN nhưng chưa gặp phải vấn đề này. Nếu hàm Dir mà đến 1-2 phút mới báo thì khả năng truy cập dữ liệu từ FE đến PE có lẽ sẽ rất tệ. Mình không biết trường hợp các máy chạy mạng LAN trong cơ quan như thế nào nhưng trong môi trường doanh nghiệp rất khó chấp nhận. Với lại cũng biết khả năng của yamakashi2003 rồi đó, ngoài ra trong trường hợp IP động cũng khó xử lý
  • RE: Thông báo lỗi khi mất mạng

    truonghet > 17-10-20, 09:52 PM

    Bạn ktra link table là được bạn nhé
  • RE: Thông báo lỗi khi mất mạng

    mrtoanbin > 30-10-20, 10:26 PM

    (12-10-20, 11:05 AM)yamakashi2003 Đã viết:
    (12-10-20, 08:31 AM)tranthanhan1962 Đã viết: Bạn có thể xử dụng phương pháp này: Giả sử BE của bạn nằm trên Ổ D của server \\server\D:\

    Sub Test_Connection()
         If (Len(Dir("\\server\D:\))) Then
           MsgBox "Có mạng Lan"
         Else
           MsgBox "Mất mạng Lan"
         End If
    End Sub
    Em cám ơn bác, 
    Nhưng cách này có vẻ hơi thủ công ạ,
    Hy vọng trong tương lai bác và anh em trong group có thể tìm ra giải pháp mới
    Em xin cảm ơn 015 015

    Mình gắn thuộc tích "On Click" như sau:

    Private Sub Command0_Click()

         If (Len(Dir("\\qung-adm\qung$\phong1"))) Then
           MsgBox "Có mạng Lan"
         Else
           MsgBox "Không có mạng Lan"
         End If
    End Sub

    Nhưng khi thực thi lại không như kết quả mong muốn. Nên nhờ bác kiểm tra dùm code ạ 
    (ở đây máy mình là máy trạm được máy chủ đặt tên là "phong1" và "\\qn-chung\qung$\phong1" là đường dẫn).
    Xin cảm ơn!