Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Tự chọn yes or no trong VBA khi chạy SQL
#1
Chào các bác!
Các bác cho em hỏi một vấn đề như thế này, em viết trong VBA tạo một câu lệnh sql append cho 1 table code thì ngon lành rồi nhưng mỗi lần chạy access hỏi có đồng ý thêm bao nhiêu row vào table không, có cách nào tự chọn là có hoặc là không không, em tạo cái delete  cũng bị như vậy. Nếu mình bấm vào no thì nó còn báo lỗi nữa.
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#2
Có 2 cách:
- C1:
Bạn chèn 2 dòng code này:

Docmd.SetWarning False
... chạy câu lệnh SQL
...
Docmd.Setwarning True

-C2: đối với các Action query thì dùng Execute. 
CurrentDb.Execute strSQL, dbFailOnError
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
#3
cách 1 true là có còn false là không hả bác,
cách 2 thì em chưa hiểu lắm bác giải thích nghĩa câu lệnh đó cho em với.

bác cho em hỏi vấn đề này với
em có 1 loạt textbox tên là tb1,tb2,tb3 .... tb10
với 1 mảng arr1() cũng có 10 giá trị
em muốn dùng for i=0 to 9 gắn giá trị cho các tb theo thứ tự từ 1-10 thì làm thế nào, hay là phải gắn từng tb một.
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#4
Em vừa làm thử cách 1 nhưng không được bác ạ. máy vẫn báo đòi yes no để add dữ liệu vào table
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#5
[size=medium][font=Arial]
Mã PHP:
If MsgBox("Ban muon chen du lieu không? Có(Yes), Không(No)"vbYesNo"Thong Bao") = vbYes Then[/font][/size]
      DoCmd.SetWarnings False
      
' Chay cau SQL
      Docmd.SetWarnings True
End If 
Chữ ký của Xuân Thanh Trăm năm trước thì ta chưa gặp
Trăm năm sau biết gặp được không?
Cuộc đời sắc sắc không không
Thì thôi ta cứ hết lòng vì nhau
ღღღღღTài sản của Xuân Thanh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#6
(25-08-18, 06:28 AM)Xuân Thanh Đã viết: [size=medium][font=Arial]
Mã PHP:
If MsgBox("Ban muon chen du lieu không? Có(Yes), Không(No)"vbYesNo"Thong Bao") = vbYes Then[/font][/size]
      DoCmd.SetWarnings False
      
' Chay cau SQL
      Docmd.SetWarnings True
End If 

Cám ơn bác xuân thanh em đã làm đc nhờ hướng dẫn bác ongke rồi nhưng ko biết hqua thì làm ko đc mà hnay lại đc

Bác giúp em ý này với.
bác cho em hỏi vấn đề này với
em có 1 loạt textbox tên là tb1,tb2,tb3 .... tb10
với 1 mảng arr1() cũng có 10 giá trị
em muốn dùng for i=0 to 9 gắn giá trị cho các tb theo thứ tự từ 1-10 thì làm thế nào, hay là phải gắn từng tb một.
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn
#7
- Khi bạn chạy câu lệnh SQL trong code là tất nhiên muốn nó Yes rồi nên bạn phả tắt thông báo mặc định của Access khi chạy các Action query (Insert, Update...). Docmd.SetWarning False là để tắt cảnh báo trước khi chạy, sau đó mở lại để không làm ảnh hưởng đến các thông báo hệ thống khác.

- Muốn phân phối mảng cho textbox bạn dùng vòng lặp For ... Next.
Vd: 
    
Mã PHP:
Dim ctl As Control
Dim i 
As Integer

For 1 to 10
     For Each ctl in Me
.Controls
            
If ctl.Name "tb" i Then
                  ctl
.Value arr1(i-1)
                  Goto KeTiep
            End 
If
      Next
KeTiep
:
Next 
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
#8
Cám ơn bác đã giúp.
Hôm qua em search cũng được một cách này khá hay
em dùng vòng for

For i= 0 to n
Me.controls("tb"&i) = arr(i)
next

cũng làm được bác ạ
Chữ ký của NguyenDungAnh Đến với cuộc đời hai tay trắng
Giã từ trần thế trắng hai tay
Bao nhiêu tiếng nói tiếng cười
Sống ở cuộc đời lãi được vậy thôi
ღღღღღTài sản của NguyenDungAnh (View All Items) ღღღღღ
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  [Thủ Thuật] Demo Tổng hợp tất cả các kiểu thông báo tiếng việt trong Access maidinhdan 39 8,456 22-09-18, 12:40 PM
Bài mới nhất: NguyenDungAnh
  [Help] SQL trong VBA chạy không đúng! NguyenDungAnh 12 655 07-09-18, 10:44 AM
Bài mới nhất: NguyenDungAnh
  Sử dụng Class Module và Kết nối dữ liệu SQL SERVER trong Access VBA lehongduc 62 34,428 03-08-18, 12:41 PM
Bài mới nhất: Cuong Servenet
  [Help] Tham so trong lenh Call Shell vodainhan 9 840 05-07-18, 09:15 PM
Bài mới nhất: MTNQ
  [Help] So sánh giá trị record trên cùng 1 trường trong 1 bảng để có kết quả tính toán đúng tvn_hut 5 485 29-05-18, 10:39 PM
Bài mới nhất: ongke0711

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ơ| PMA Nha Trang| Gỗ Acrylic Không Đường Line