ooh_happyday

New Member
các bạn giúp mình với .Khi mình chạy 1 Query nó hiện thông báo lỗi như hình :







Lỗi này do Query Append phát hiện trùng bản ghi khi append vào bảng khác.

Có cách nào để chặn thông báo lỗi này,và để nó mặc định chon YES hay hiện ra 1 Msg box cho chọn Yes / No không ? Nếu chọn Yes thì nó chạy tiếp tục chạy Query ,No thì huỷ bỏ

Thanks tất cả người !
 

baocap18

New Member
Để tắt thông báo của query, bạn chạy lệnh:

Docmd.SetWarnings False



Để bật trở lại:

Docmd.SetWarnings True
 

l1lo0o_boy

New Member
Bạn ơi cho mình hỏi chút nhé.Cái dòng lệnh tắt thông báo của bạn thì nó tự động chọn Yes hay No thế.

Vì mình giả dụ nhé câu lệnh Query này mình append dữ liệu từ Form Khoá Học vào 1 bảng khác.Trên Form có Subform học viên.Sau đó tại Form này mình lại thêm 1 bản ghi học viên nữa.Khi đó mình chạy Query sẽ xuất hiện thông báo như trên. Nếu mình chọn Yes thì 1 bản ghi được thêm đó sẽ được lưu vào bảng.Nhưng nếu chọn No thì bản ghi đó sẽ không được lưu.

Đó chính là sự khác nhau,nên mình muốn hỏi nó sẽ chon Y hay No hay không cho chạy Q.

Thanks
 

thang4_1976

New Member
Bạn ơi cho mình hỏi chút nhé.Cái dòng lệnh tắt thông báo của bạn thì nó tự động chọn Yes hay No thế.

Vì mình giả dụ nhé câu lệnh Query này mình append dữ liệu từ Form Khoá Học vào 1 bảng khác.Trên Form có Subform học viên.Sau đó tại Form này mình lại thêm 1 bản ghi học viên nữa.Khi đó mình chạy Query sẽ xuất hiện thông báo như trên. Nếu mình chọn Yes thì 1 bản ghi được thêm đó sẽ được lưu vào bảng.Nhưng nếu chọn No thì bản ghi đó sẽ không được lưu.

Đó chính là sự khác nhau,nên mình muốn hỏi nó sẽ chon Y hay No hay không cho chạy Q.

Thanks
 

henry_hoangvu87

New Member
Thứ nhất mình thấy bạn không nên tắt câu thông báo lỗi trên vì nó sẽ cho ban biết được chuyện append của bạn có thành công hay không và append được bao nhiêu dòng, và trong quá trình append bị những lỗi gì.

Thứ hai, bạn có thể cho mình biết là bạn muốn làm gì ?
 
Thứ nhất mình thấy bạn không nên tắt câu thông báo lỗi trên vì nó sẽ cho ban biết được chuyện append của bạn có thành công hay không và append được bao nhiêu dòng, và trong quá trình append bị những lỗi gì.

Thứ hai, bạn có thể cho mình biết là bạn muốn làm gì ?
 
Mình Thank bạn nhé !

Chính xác là mình không muốn tắt thông báo đó.

Vì phần mềm của mình vừa gần trả thiện,đang bước vào quá trình bẫy lỗi.Mình không muốn hiện thị 1 câu thông báo của Access (vì như thế người dùng bình thường đâu có hiểu mô tê gì đâu ). Mình muốn hiển thị câu thông báo do mình đặt ra và vẫn giữ lại tùy chọn Yes / No của Query có được không ?

Về cơ bản mình vừa thử câu lệnh tắt thông báo Query của bạn Dongnamnb ,nó vừa đáp ứng được 1 phần yêu cầu của mình là tắt thông báo và tự động chọn Yes .

Tuy nhiên nếu bạn biết cách thay câu thông báo trên bằng msgbox Yes/ No thì giúp mình với.

Thanks rất nhiều
 
Mình Thank bạn nhé !

Chính xác là mình không muốn tắt thông báo đó.

Vì phần mềm của mình vừa gần trả thiện,đang bước vào quá trình bẫy lỗi.Mình không muốn hiện thị 1 câu thông báo của Access (vì như thế người dùng bình thường đâu có hiểu mô tê gì đâu ). Mình muốn hiển thị câu thông báo do mình đặt ra và vẫn giữ lại tùy chọn Yes / No của Query có được không ?

Về cơ bản mình vừa thử câu lệnh tắt thông báo Query của bạn Dongnamnb ,nó vừa đáp ứng được 1 phần yêu cầu của mình là tắt thông báo và tự động chọn Yes .

Tuy nhiên nếu bạn biết cách thay câu thông báo trên bằng msgbox Yes/ No thì giúp mình với.

Thanks rất nhiều
 
Bạn à !

Đây là thông báo lỗi của Query thế nên On Error Go to khi Click là không tác dụng.

Cũng không thể bắt lỗi sự kiện On Error trên Form được.

Đơn giản thế này thôi :

Mình muốn làm ra (tạo) 1 command button( Tên là Lưu Khóa Học) ,khi nhấn vào nút đó nó sẽ thực thi 1 Query Append dữ liệu trên Form vào 1 bảng khác (Dữ liệu này được lưu độc lập để làm tài liệu sau này,nên nó không có mối quan hệ với các bảng khác).

Form này có trường Tên khóa học và Subform là Tên học viên học khóa đó.

Và khi mình append xong,mình không muốn dữ liệu trên Form bị xóa đi.

Nên sẽ xảy ra tình huống,1 ai đó sau này lại nhấn Nút Lưu Khóa Học và tất nhiên sẽ xuất hiện thông báo lỗi trên.
 

Markus

New Member
Bạn à !

Đây là thông báo lỗi của Query thế nên On Error Go to khi Click là không tác dụng.

Cũng không thể bắt lỗi sự kiện On Error trên Form được.

Đơn giản thế này thôi :

Mình muốn làm ra (tạo) 1 command button( Tên là Lưu Khóa Học) ,khi nhấn vào nút đó nó sẽ thực thi 1 Query Append dữ liệu trên Form vào 1 bảng khác (Dữ liệu này được lưu độc lập để làm tài liệu sau này,nên nó không có mối quan hệ với các bảng khác).

Form này có trường Tên khóa học và Subform là Tên học viên học khóa đó.

Và khi mình append xong,mình không muốn dữ liệu trên Form bị xóa đi.

Nên sẽ xảy ra tình huống,1 ai đó sau này lại nhấn Nút Lưu Khóa Học và tất nhiên sẽ xuất hiện thông báo lỗi trên.
 

Yeung

New Member
Trên thực tế thì người ta không làm như vậy, Họ sẽ làm ra (tạo) 1 form để nhập liệu riêng cho table khóa học.

Mình có cảm giác bạn đang làm phức tạp hóa vấn đề

Nếu bạn thật sự vẫn muốn giử cấu trúc đang dùng thì không nên dùng câu lệnh append mà dùng câu query insert into.... rồi bắt lỗi on error...



strSQL = "INSERT INTO......"

DoCmd.RunSQL (strSQL)
 

b0ys0ck_ng0c

New Member
Trên thực tế thì người ta không làm như vậy, Họ sẽ làm ra (tạo) 1 form để nhập liệu riêng cho table khóa học.

Mình có cảm giác bạn đang làm phức tạp hóa vấn đề

Nếu bạn thật sự vẫn muốn giử cấu trúc đang dùng thì không nên dùng câu lệnh append mà dùng câu query insert into.... rồi bắt lỗi on error...



strSQL = "INSERT INTO......"

DoCmd.RunSQL (strSQL)
 

Phillip

New Member
Uh, thì mình có 1 Form để nhập khoá học riêng và 1 Form nhập thông tin khách hàng.Nhưng mình muốn khi khoá học đó tổ chức xong thì sẽ lưu khoá học đó lại để làm tư liệu sau này.

Và đương nhiên bảng lưu này sẽ không quan hệ với các bảng khác để đảm bảo dữ liệu không bị thay đổi khi thêm hay xoá từ bảng khác

Còn câu lệnh thì mình không rõ lắm vì mình chưa học lập trình VB.
 

vanganhmm_52

New Member
Uh, thì mình có 1 Form để nhập khoá học riêng và 1 Form nhập thông tin khách hàng.Nhưng mình muốn khi khoá học đó tổ chức xong thì sẽ lưu khoá học đó lại để làm tư liệu sau này.

Và đương nhiên bảng lưu này sẽ không quan hệ với các bảng khác để đảm bảo dữ liệu không bị thay đổi khi thêm hay xoá từ bảng khác

Còn câu lệnh thì mình không rõ lắm vì mình chưa học lập trình VB.
 

Các chủ đề có liên quan khác

Top