• Bắt cảnh báo waring.
  • Bắt cảnh báo waring.

    HoangManh > 02-05-17, 07:29 AM

    dẫnBắt cảnh báo waring.

    Các anh cho em hỏi là em có làm cái nút update. khi sửa hay chọn một dòng thì không sao. nhưng khi sửa dòng thứ 2 thì access bật ra cảnh báo là có lưu record set vửa sửa không. hoặc thi thoát khỏi from. MOng đựoc các anh hứong dẫn cách bắt lỗi
  • RE: Bắt cảnh báo waring.

    tranthanhan1962 > 02-05-17, 09:28 AM

    warning! OK bạn tạo một textbox có giá trị defaul value =0. Kèm với button update là lệnh textbox.Value = textbox.Value  +1. Đặt If trường hợp textbox.Value = 0 thì sửa, Nếu textbox.Value > 0 thì bật cảnh báo. Cách này không hay bằng tạo bẩy khi update 1 control trên record thì khóa trỏ chuột trên dòng và buột phải bấm nút lưu trước khi làm chuyện khác (cũng tạo textbox làm tham số) hoặc mỗi lần update bất kỳ control nào cũng sẽ xử lý lệnh lưu (cách này khỏi phải tạo nút lưu nhưng tốn thời gian)
  • RE: Bắt cảnh báo waring.

    HoangManh > 02-05-17, 09:55 AM

    (02-05-17, 09:28 AM)tranthanhan1962 Đã viết: warning! OK bạn tạo một textbox có giá trị defaul value =0. Kèm với button update là lệnh textbox.Value = textbox.Value  +1. Đặt If trường hợp textbox.Value = 0 thì sửa, Nếu textbox.Value > 0 thì bật cảnh báo. Cách này không hay bằng tạo bẩy khi update 1 control trên record thì khóa trỏ chuột trên dòng và buột phải bấm nút lưu trước khi làm chuyện khác (cũng tạo textbox làm tham số) hoặc mỗi lần update bất kỳ control nào cũng sẽ xử lý lệnh lưu (cách này khỏi phải tạo nút lưu nhưng tốn thời gian)

    Em cảm ơn anh ạ. Nhưng mong muốn của em là tắt hẳn cái waring đi ạ. chứ không muốn nó bật lên hoặc là hiện thông báo kiểu như bạn có muốn sửa dòng khác nữa không. Vì hiện tựong em đang gặp là khi sửa xong 1 record . khi click vào record khác hay khi thoát thì access tự bật ra cánh báo lưu record trước em muốn là lưu vào bảng tạm sau đó mới lưu về sqlserver. sau mỗi lần update em cũng đã lưu thằng vào bạng tạm trong  access nhưng vẫn bị lỗi trên ạ. Có khi em chưa hiểu hết ý anh anh có thể nói rõ hơn không ạ. Em cảm ơn anh ạ
  • RE: Bắt cảnh báo waring.

    tranthanhan1962 > 02-05-17, 11:11 AM

    À vậy là tắt warning chứ không phải là bắt. Không phải lúc nào cũng có thể bỏ được warning hệ thống của access đâu bạn. Nếu là warning của query/SQL thì có thể vào option bỏ dấu check của action query. Ngoài ra đối với những bẫy lỗi không bỏ được cảnh báo có thể xử lý chuyển thông báo tiếng anh sang tiếng việt để ứng dụng có thể Việt hóa hoàn chỉnh.
    Đây là ví dụ của bẩy lỗi: Số hiệu của lỗi có thể tìm thấy trong help của warning.
    Mã:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
       Select Case DataErr
           Case 2113
               MsgBox "Only numbers are acceptable in this box", vbCritical, "Call 1-800-123-4567"
               Response = acDataErrContinue
           Case 2237
               MsgBox "You can only choose from the dropdown box"
               Response = acDataErrContinue
           Case 3022
               MsgBox "You entered a value that exists already in another record"
               Response = acDataErrContinue
               SSN.Value = SSN.OldValue
           Case 3314
               MsgBox "The DOH is required, so you cannot leave this field empty"
               Response = acDataErrContinue
           Case Else
               Response = acDataErrDisplay
       End Select
       ActiveControl.Undo
    End Sub
  • RE: Bắt cảnh báo waring.

    HoangManh > 02-05-17, 12:04 PM

    (02-05-17, 11:11 AM)tranthanhan1962 Đã viết: À vậy là tắt warning chứ không phải là bắt. Không phải lúc nào cũng có thể bỏ được warning hệ thống của access đâu bạn. Nếu là warning của query/SQL thì có thể vào option bỏ dấu check của action query. Ngoài ra đối với những bẫy lỗi không bỏ được cảnh báo có thể xử lý chuyển thông báo tiếng anh sang tiếng việt để ứng dụng có thể Việt hóa hoàn chỉnh.
    Đây là ví dụ của bẩy lỗi: Số hiệu của lỗi có thể tìm thấy trong help của warning.
    Mã:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
       Select Case DataErr
           Case 2113
               MsgBox "Only numbers are acceptable in this box", vbCritical, "Call 1-800-123-4567"
               Response = acDataErrContinue
           Case 2237
               MsgBox "You can only choose from the dropdown box"
               Response = acDataErrContinue
           Case 3022
               MsgBox "You entered a value that exists already in another record"
               Response = acDataErrContinue
               SSN.Value = SSN.OldValue
           Case 3314
               MsgBox "The DOH is required, so you cannot leave this field empty"
               Response = acDataErrContinue
           Case Else
               Response = acDataErrDisplay
       End Select
       ActiveControl.Undo
    End Sub

    Em xin lỗi. Nhưng anh có thể chỉ rõ hơn khi trong một fution mình muốn gọi thử tục bắt lỗi thì chỉ càn call From erro thôi ạ
  • RE: Bắt cảnh báo waring.

    tranthanhan1962 > 02-05-17, 12:57 PM

    (02-05-17, 12:04 PM)HoangManh Đã viết:
    (02-05-17, 11:11 AM)tranthanhan1962 Đã viết: À vậy là tắt warning chứ không phải là bắt. Không phải lúc nào cũng có thể bỏ được warning hệ thống của access đâu bạn. Nếu là warning của query/SQL thì có thể vào option bỏ dấu check của action query. Ngoài ra đối với những bẫy lỗi không bỏ được cảnh báo có thể xử lý chuyển thông báo tiếng anh sang tiếng việt để ứng dụng có thể Việt hóa hoàn chỉnh.
    Đây là ví dụ của bẩy lỗi: Số hiệu của lỗi có thể tìm thấy trong help của warning.
    Mã:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
       Select Case DataErr
           Case 2113
               MsgBox "Only numbers are acceptable in this box", vbCritical, "Call 1-800-123-4567"
               Response = acDataErrContinue
           Case 2237
               MsgBox "You can only choose from the dropdown box"
               Response = acDataErrContinue
           Case 3022
               MsgBox "You entered a value that exists already in another record"
               Response = acDataErrContinue
               SSN.Value = SSN.OldValue
           Case 3314
               MsgBox "The DOH is required, so you cannot leave this field empty"
               Response = acDataErrContinue
           Case Else
               Response = acDataErrDisplay
       End Select
       ActiveControl.Undo
    End Sub

    Em xin lỗi. Nhưng anh có thể chỉ rõ hơn khi trong một fution mình muốn gọi thử tục bắt lỗi thì chỉ càn call From erro thôi ạ
    OK! đó là thủ tục quản lý lỗi mà! Ở đây khi bạn xử lý một hành động (event) thì giải quyết thủ tục sub.
    Thủ tục (sub) gồm một tập các dòng lệnh dùng để thực hiện một tác vụ cụ thể. Thủ tục không trả về giá trị nào mà dùng để thực hiện một hoặc nhiều yêu cầu thực thi nào đó cho người xử dụng.
    Hàm (function) gồm một tập các dòng lệnh dùng để thực hiện một tác vụ cụ thể nào đó và luôn luôn trả về một giá trị xác định.
    Tất nhiên trong VBA không có một yêu cầu rạch ròi như thế. Có thể dùng hàm gọi thủ tục hoặc dùng thủ tục để gọi hàm. Sự linh động phối hợp giữa các hàm và thủ tục tạo nên sự thiên biến vạn hóa cho lập trình gia.  007
    Ví dụ:
    Trong thủ tục update một texbox bạn có thể dùng hàm để thay đổi giá trị của một textbox khác (hàm đó có thể là của access hoặc bạn tự xây dựng) hoặc trong một hàm khi thực thi bạn tạo bẫy lỗi để thực hiện một even nào đó (ví dụ khi giá trị hàm là một số âm thì sẽ gọi thủ tục ẩn nút clock form chẳn hạn)
  • RE: Bắt cảnh báo waring.

    HoangManh > 02-05-17, 01:31 PM

    (02-05-17, 12:57 PM)tranthanhan1962 Đã viết:
    (02-05-17, 12:04 PM)HoangManh Đã viết:
    (02-05-17, 11:11 AM)tranthanhan1962 Đã viết: À vậy là tắt warning chứ không phải là bắt. Không phải lúc nào cũng có thể bỏ được warning hệ thống của access đâu bạn. Nếu là warning của query/SQL thì có thể vào option bỏ dấu check của action query. Ngoài ra đối với những bẫy lỗi không bỏ được cảnh báo có thể xử lý chuyển thông báo tiếng anh sang tiếng việt để ứng dụng có thể Việt hóa hoàn chỉnh.
    Đây là ví dụ của bẩy lỗi: Số hiệu của lỗi có thể tìm thấy trong help của warning.
    Mã:
    Private Sub Form_Error(DataErr As Integer, Response As Integer)
       Select Case DataErr
           Case 2113
               MsgBox "Only numbers are acceptable in this box", vbCritical, "Call 1-800-123-4567"
               Response = acDataErrContinue
           Case 2237
               MsgBox "You can only choose from the dropdown box"
               Response = acDataErrContinue
           Case 3022
               MsgBox "You entered a value that exists already in another record"
               Response = acDataErrContinue
               SSN.Value = SSN.OldValue
           Case 3314
               MsgBox "The DOH is required, so you cannot leave this field empty"
               Response = acDataErrContinue
           Case Else
               Response = acDataErrDisplay
       End Select
       ActiveControl.Undo
    End Sub

    Em xin lỗi. Nhưng anh có thể chỉ rõ hơn khi trong một fution mình muốn gọi thử tục bắt lỗi thì chỉ càn call From erro thôi ạ
    OK! đó là thủ tục quản lý lỗi mà! Ở đây khi bạn xử lý một hành động (event) thì giải quyết thủ tục sub.
    Thủ tục (sub) gồm một tập các dòng lệnh dùng để thực hiện một tác vụ cụ thể. Thủ tục không trả về giá trị nào mà dùng để thực hiện một hoặc nhiều yêu cầu thực thi nào đó cho người xử dụng.
    Hàm (function) gồm một tập các dòng lệnh dùng để thực hiện một tác vụ cụ thể nào đó và luôn luôn trả về một giá trị xác định.
    Tất nhiên trong VBA không có một yêu cầu rạch ròi như thế. Có thể dùng hàm gọi thủ tục hoặc dùng thủ tục để gọi hàm. Sự linh động phối hợp giữa các hàm và thủ tục tạo nên sự thiên biến vạn hóa cho lập trình gia.  007
    Ví dụ:
    Trong thủ tục update một texbox bạn có thể dùng hàm để thay đổi giá trị của một textbox khác (hàm đó có thể là của access hoặc bạn tự xây dựng) hoặc trong một hàm khi thực thi bạn tạo bẫy lỗi để thực hiện một even nào đó (ví dụ khi giá trị hàm là một số âm thì sẽ gọi thủ tục ẩn nút clock form chẳn hạn)

    em cảm ơn anh ạ. Em có bắt lỗi như anh nói nhưng cái wwaring bật ra em không thấy help hay tra đựoc tên trong access help không biết là lỗi bào nhieu. cái thông báo bật ra khi em sửa ở record 1 sau đó em muốn sửa record 2 khi click thì thống báo bật ra. bên dứoi có 3 mục là có lưu cái mới sửa hay không , không lưu và một cái out ra access help nhưng lại không nhận diện đựoc là lỗi số bao nhiêu hay là cảnh báo số bao nhiêu có cách nào bắt đựoc nó không ạ
  • RE: Bắt cảnh báo waring.

    tranthanhan1962 > 02-05-17, 03:02 PM

    Bạn đưa cảnh báo lên xem nó là gì?