Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Cách huỷ bỏ các thông báo của append query.
#1
Khi em chạy các query appending các query đều hiện thông báo hỏi là có mở không. sau đó thông báo là đã thêm được số lượng recodes vào table. bây giờ em muốn cho các thông báo này không xuất hiện nữa thì có cách nào không các anh chị pro? em mong các anh chị chỉ cách cho em với.
Chữ ký của quanghoasla Hãy chia sẻ kinh nghiệm cùng mình trênThuThuatAccess nhé! Chúc vui vẻ rose
My site: My site hoặc My site
ღღღღღTài sản của quanghoasla (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Mã:
DoCmd.SetWarnings False
Docmd.OpenQuery "Query 1"
Docmd.SetWarnings True

Thế Query 1 bằng tên query append của bạn.

Có nhiều cách khác như dùng macro, chỉnh lại trong option... nhưng cách này là thông dụng nhất!
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn thisplus , Che_Guevara
#3
Vâng cám ơn bác noname nhé. em đang thử ạ.
Chữ ký của quanghoasla Hãy chia sẻ kinh nghiệm cùng mình trênThuThuatAccess nhé! Chúc vui vẻ rose
My site: My site hoặc My site
ღღღღღTài sản của quanghoasla (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
hi hi em cám ơn anh noname nhé. em làm được rồi ạ.em sử dụng theo cách của anh chẳng thấy một thông báo nào hết.thật tuyệt vời anh ạ.
Chữ ký của quanghoasla Hãy chia sẻ kinh nghiệm cùng mình trênThuThuatAccess nhé! Chúc vui vẻ rose
My site: My site hoặc My site
ღღღღღTài sản của quanghoasla (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
(26-07-11, 07:25 PM)Noname Đã viết:
Mã:
DoCmd.SetWarnings False
Docmd.OpenQuery "Query 1"
Docmd.SetWarnings True

Thế Query 1 bằng tên query append của bạn.

Có nhiều cách khác như dùng macro, chỉnh lại trong option... nhưng cách này là thông dụng nhất!
Bác noname cho mình hỏi là đoạn code bác đưa ra viết vào đâu vậy. Mình cũng mới tìm hiểu Access nên không rõ lắm. Bác có thể hướng dẫn thêm cho mình được không? Bác tả kỹ đoạn tạo code và áp dung nó chạy ở đâu giúp mình nhé.
Cảm ơn bác
Chữ ký của thisplus Xin chào, mình là thisplus, Tham gia http://thuthuataccess.com/forum từ ngày 19-06 -11.
Reply
Những người đã cảm ơn
#6
DoCmd.SetWarnings False : có nghĩa là tắt thông báo
Docmd.OpenQuery "Query 1" : là chạy query 1
Docmd.SetWarnings True:   là bật thông báo 
nó được áp dụng vào sự kiện của button chạy query1 đó. Ok chưa nào?

đã fix!
Chữ ký của zinzin8x zinzin8x,gia nhập Thủ Thuật Access từ 19-01 -16.
Reply
Những người đã cảm ơn maidinhdan , thisplus
#7
Hình như bạn zinzin8x có 1 nhầm lẩn nho nhỏ
....  Fales: là tắt thông báo
..... True: là bật thông báo
Chữ ký của Che_Guevara Hạnh phúc không phải là cảm giác tới đích mà là trên từng chặng đường đi!
Reply
Những người đã cảm ơn
#8
Cảm ơn bạn zinzin8x. Mình làm được rồi. 007
Chữ ký của thisplus Xin chào, mình là thisplus, Tham gia http://thuthuataccess.com/forum từ ngày 19-06 -11.
Reply
Những người đã cảm ơn
#9
Trong thực tế, em nghĩ nhu cầu tắt thông báo append là khá cần thiết cho việc làm phần mềm chạy có vẻ mượt, nhưng đôi khi nên tránh dùng. Lý do em đưa ra bởi vì, thông báo của nó có chứa thông tin bao nhiêu record sẽ được thêm vào, đồng thời cho phép có đồng ý tiếp tục hay là không ./. và dù có để lại thì tùy chọn Yes/No của người dùng cũng ko thể can thiệp vào code được.

- Thông thường append khá hữu dụng khi mình copy thẳng 1 lượng record từ ngoài vào bảng tạm, tránh phải nhập liệu lại. Tuy nhiên access thông minh quá đôi khi lại hiểu sai ý người dùng, ví dụ đôi khi nó bỏ qua record đầu tiên (nếu toàn bộ các field copy vào là dạng text) vì cho rằng đó chỉ là field name. Vì vậy nên để ý thông báo số record đã được add vào bảng tạm để xem đã đủ chưa, tránh trường hợp bỏ sót số liệu, sau này tìm kiếm lại rất cực.
- Sau khi copy dữ liệu vào bảng tạm, thực hiện chức năng append thì access cũng thông báo "Có tiếp tục hay không" / "Bao nhiêu record sẽ được add". Ở đây người dùng được tùy chọn tiếp hay thôi, nếu tiếp thì bao nhiêu record add thành công (vì đôi khi chúng ta dùng điều kiện lọc cho các record sẽ được thêm vào chứ không phải toàn bộ - để tránh trùng dữ liệu chẳng hạn).

Việc giữ lại thông báo đôi khi cho người dùng biết chương trình có "mắc lỗi" hay là không, hoặc bảng tạm có bao nhiêu dữ liệu chưa đạt điều kiện lọc và có thể kiểm tra lại xem chương trình chạy đã đúng hay chưa.

- Việc tùy chọn yes / no đôi khi khá phiền nhưng ko phiền bằng việc lỡ sót mất một record nào đấy. Và để nó ở đó thì cũng ko làm người dùng có khả năng can thiệp vào code nên ko có gì đáng ngại lắm.

Đó là toàn bộ suy nghĩ của em về vấn đề này, hy vọng có chút hữu ích cho chủ topic. Mà nếu em có chỗ nào bị hiểu sai thì các bác chỉnh em ngay nhé, để em chỉnh lại luôn ạ.
Chữ ký của toancvp Nếu tất cả đường đời đều trơn láng    
Có thể nào ta nhận ra ta Bat
Reply
Những người đã cảm ơn
#10
(11-08-16, 09:06 AM)toancvp Đã viết: Trong thực tế, em nghĩ nhu cầu tắt thông báo append là khá cần thiết cho việc làm phần mềm chạy có vẻ mượt, nhưng đôi khi nên tránh dùng. Lý do em đưa ra bởi vì, thông báo của nó có chứa thông tin bao nhiêu record sẽ được thêm vào, đồng thời cho phép có đồng ý tiếp tục hay là không ./. và dù có để lại thì tùy chọn Yes/No của người dùng cũng ko thể can thiệp vào code được.
...

Thông thường thì người ta sẽ viết code để xử lý thay thế các thông báo mặc định của Access. Nếu người dùng không biết tiếng Anh thì họ sẽ hoang mang khi thấy thông báo tiếng Anh mang đầy tính kỹ thuật trong đó.
Đối với việc tắt thông báo "DoCmd.Setwanrings False/True" thì như bạn toancvp nói đúng, nó sẽ bỏ qua các lỗi nếu phát sinh mà mình không biết. Đối với trường hợp này thường thì đổi sang câu lệnh "DoCmd.Execute" và chủ động hiện thông báo các record nào đã xử lý.
Mã PHP:
Dim db As DAO.Database
Dim lngRowsAffected 
As Long
Dim lngRowsDeleted 
As Long

Set db 
CurrentDb

' Chạy câu lệnh SQL Action Query hoặc Query đã lưu (saved Query) cũng được'
db.Execute QueryNamedbFailOnError

' Hiện thông báo có bao nhiêu records được tạo/xóa...'
lngRowsAffected db.RecordsAffected
MsgBox CStr
(db.RecordsAffected) & " dòng đã cập nhật."
 
db
.Execute "DELETE * FROM TenBang WHERE DieuKien"dbFailOnError
lngRowsDeleted 
db.RecordsAffected
MsgBox CStr
(db.RecordsAffected) & " dòng đã xóa." 

- Riêng việc bạn nói khi import Access có thể bỏ qua dòng đầu tiên vì tưởng là tên Field thì đây là do import bằng menu Import có sẳn của Access mà khi import Access cũng có hỏi bạn "First Row Contains Column Headings" để tick chọn hay không. Thông thường thì người ta cũng viết code để import sẽ bỏ qua vụ "Column Headings".
Mã PHP:
DoCmd.TransferSpreadsheet acImport, , "TempImportExcel"FilePathTrue 
Chữ ký của ongke0711 If you BORN poor, it's not your mistake. But if you DIE poor, It's your mistake!
ღღღღღTài sản của ongke0711 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan , toancvp


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Lọc query có điều kiện để tạo report honglv157 3 155 01-12-16, 05:15 PM
Bài mới nhất: maidinhdan
  [Help] ẩn nút ""Close Windown" khi mở query tronghieu9792 4 85 30-11-16, 09:36 PM
Bài mới nhất: tronghieu9792
  [Hỏi] cách lọc nhân viên làm việc ở 2 phòng ban? hoanghai902 1 54 27-11-16, 04:49 PM
Bài mới nhất: Noname
Question [Help] Cần giúp đỡ tạo query lấy giá trị của dòng liền trước để tính giá trị trung bình luonguct 4 87 23-11-16, 12:33 AM
Bài mới nhất: luonguct
  Hướng Dẫn hướng dẫn làm query tieuho828 6 146 21-11-16, 12:36 AM
Bài mới nhất: toancvp

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ