• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

ADODB với Access, DataGrid, DataReport, DE, DAO

Chuyên mục thảo luận các vấn đề liên quan đến ứng dụng quản lý và cơ sở dữ liệu

Điều hành viên: Điều hành

maiyeu0208
Bài viết: 1
Ngày tham gia: T.Hai 15/12/2008 3:33 pm

Hỏi về cách tạo 1 Report phân nhóm có sử dụng tham số

Gửi bàigửi bởi maiyeu0208 » T.Hai 15/12/2008 3:54 pm

Tôi đang viết một chương trình quản lý bán tạp hóa bằng VB6, CSDL sử dụng Access 2003. Tôi muốn xuất một báo cáo là các hóa đơn bán hàng của một ngày hoặc một tháng bất kỳ nào đó. Ngày hoặc tháng này được chọn từ Form. Thông tin hóa đơn gồm có số hóa đơn và tên các mặt hàng trong hóa đơn đó. Nếu sử dụng câu SQL bình thường thì in được nhưng khổ nổi lại không nhóm được cái số hóa đơn trong phần Group Header, cứ có bao nhiêu mặt hàng là cái số HD in ra bao nhiêu lần. Tôi thử sử dụng đối tượng Command của Data Enviroment thì nhóm được nhưng không biết cách truyền biến là ngày/tháng bất kỳ vào để in :( . Bác nào biết làm ơn chỉ giúp! Sẵn đây xin hỏi luôn: làm sao để tạo các Stored Procedure để sử dụng trong các Command? Lần đầu tiên tham gia diễn đàn, có gì sai sót mong các bác bỏ qua! Mình xin cám ơn trước!



Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Hai 15/12/2008 7:30 pm

96- Giới thiệu Function Coalesce
Cấu trúc lệnh:
COALESCE (a1, a2, a3, ..., an)
Kết quả: Sẽ chọn theo thứ tự từ a1, a2 ... đến an như sau:
nếu a1 is not null thì chọn a1, mà a1 is null thì chọn a2
tiếp tục, nếu a2 is null thì chọn a3 ...

Xét:

Mã: Chọn hết

  1. SELECT  COALESCE (name, description) as Product FROM Products

SQl sẽ chọn description nếu name is null

Mã: Chọn hết

  1. SELECT * FROM Products WHERE (name = '$P' OR $P IS NULL)

SQl sẽ chọn tất cả nếu $P IS NULL
Câu lệnh trên được viết như sau:

Mã: Chọn hết

  1. SELECT * FROM Products WHERE (name  LIKE COALESCE($P, '%' ))


gửi bởi huy34 vào ngày Thứ 5 23/08/2007 8:48 pm
bấm vào nút "Thêm" thì ở textbox"MSKH" sẽ tự động hiện lên MSKH. sau đó mới bấm tới button Lưu thì thông tin mới được cập nhật vào CSDL.
Nói đơn giản dễ hiểu hơn là làm sao để lấy MSKH (autoNumber chưa có) trong csdl điền vào textbox MSKH


gửi bởi meoconbuongbinh1712 vào ngày Thứ 6 24/08/2007 7:58 am
Nếu bạn đã đặt MSKH là autonumber thì bạn miễn đụng chạm được đên nó rồi.
Vậy nên bạn làm theo như cách của bác thanhlv là ổn nhất.Khi nhấn button Thêm bạn sử dụng biến datareader để đọc và gán cho nó =textmakh với câu lệnh sql="select coalesce(MAX(MSKH), '0')+1 AS mk from KHACHHANG"
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

qnnewcode
Thành viên trung thành
Thành viên trung thành
Bài viết: 248
Ngày tham gia: CN 07/12/2008 5:45 pm

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi qnnewcode » T.Hai 15/12/2008 8:41 pm

Cuối cùng cũng được tuy không pro lắm.Cảm ơn mọi người ạ. :)

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 16/12/2008 11:29 am

Có bạn muốn minh họa rõ hơn về bài viết 95- Kỹ thuật ghi hình vào file MDB và load hình từ MDB ra Picture1
Tôi có thử chèn hình bằng tay vào MDB, kiểm ta mở bằng tay thì hình tốt. nhưng khi dùng ADODB để đọc hình và ghi file hình tạm thì file hình nầy lại không giá trị dù có cùng size với hình gôc
Vậy nên, ta phải dùng ADODB để ghi hình vào MDB luôn cho tiện
Ghi hình và load hình là 2 công đoạn độc lập. Bình thường load hình có sẵn trong MDB thì chỉ cần đoạn code nhờ ADODB ghi và lưu ra file tạm, sau đó Picure1 sẽ load
Tôi gởi kèm Project để minh họa
Tập tin đính kèm
Nhâp Anh và Load Anh.rar
(220.9 KiB) Đã tải 5105 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
lanlan
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 310
Ngày tham gia: T.Năm 05/06/2008 8:49 am
Been thanked: 1 time

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi lanlan » T.Ba 16/12/2008 12:13 pm

Bác truongphu hôm nay nhìu sao thế không biết xanh đỏ có đủ chúc mừng bác =D>
"•´¨*•.¸¸.*..^_^ one love-one heart ^_^..*.¸¸.•*¨."
_______"•´`•.(¸.•´(¸.•* *•.¸)`•.¸).•´`•"
________________*(¨`•.•´¨)*
__________________`•.¸.•’

Hình đại diện của người dùng
hoangthu1974
Guru
Guru
Bài viết: 813
Ngày tham gia: T.Năm 09/03/2006 9:30 am
Đến từ: Hà Nội --> Tp. Hồ Chí Minh
Been thanked: 13 time
Liên hệ:

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi hoangthu1974 » T.Ba 16/12/2008 2:25 pm

@truongphu: Hôm nay đọc mấy bài của bác về hình ảnh ghi vào file db, tôi nhớ là VB6 có chức năng lấy hình lên Picture Box luôn mà không cần thông qua file tạm. Hiện chưa lục được đống dữ liệu để lấy file cũ. Chức năng này tuy không mạnh bằng VB.NET nhưng vẫn có thể dùng được.

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Sáu 19/12/2008 5:20 pm

97- Nói thêm về kiểm tra trùng record

Cho Text1 mang giá trị String muốn kiểm tra. Kiểm tra Field MSKH

1- Nhiều bạn hay dùng vòng lặp:

Mã: Chọn hết

  1. Rec.MoveFirst
  2. Do While Not Rec.EOF
  3.     If Rec.Fields("MSKH") = Text1.Text then
  4.         Msgbox "Trùng Mã"
  5.         Exit Do
  6.     Else
  7.     Rec.MoveNext
  8.     End If
  9. Loop


2- Ta có thể dùng Rec.RecordCount

Mã: Chọn hết

  1. Rec.Open "Select * From Table1 Where MSKH = '" & Text1.Text & "'"
  2. If Rec.RecordCount > 0 then Msgbox "Trùng Mã"


3- Bạn cũng có quyền dùng Select Count

Mã: Chọn hết

  1. Rec.Open "Select Count(MSKH) As XXX From Table1 Where MSKH = '" & Text1.Text & "'"
  2. If Rec!XXX >0 then Msgbox "Trùng Mã"


4- Hoặc cho hiện lên DataGrid các record tương tự ngay khi gõ vào text1

Mã: Chọn hết

  1. Private Sub Text1_Change()
  2. Rec.Open "Select * From Table1 Where MSKH = '%" & Text1.Text & "%'"
  3. Set DataGrid1.DataSource = Rec
  4. End Sub
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: 789 câu hỏi & trả lời về file MDB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Sáu 19/12/2008 5:33 pm

98- Lỗi an out-of-range datetime value
gửi bởi qnnewcode vào ngày T.Tư 17/12/2008 8:15 am
gửi bởi VickyBui vào ngày 19/12/2008 3:47 pm

The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.


ý nghĩa: Chuyển đổi dạng char sang dạng datetime có kết quả ngoài bộ nhớ

Nghĩa là khi bạn nhập ngày theo kiểu dd/mm/yyyy, ví dụ hôm nay 17/12/2008
Trình chuyển đổi lại theo mm/dd/yyyy là ngày 12 tháng 17 năm 2008. Đây là kết quả sai

Hoặc là giá trị là null, điều nầy ít ai nghĩ đến...
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » CN 21/12/2008 2:37 pm

Tại địa chỉ:
http://www.developerfusion.com/article/1845/client-server-programming-with-winsock/
có code demo đơn giản kết nối client-server qua winsock: client hỏi và server truy vấn dữ liệu gởi kết quả cho client.
Tôi đã test êm (Trên cùng một máy), và biên dịch thành 2 file Client1.exe và Server.exe kèm file csdl Prices.mdb gởi lên.
Mời các bạn chạy thử: Bạn nào nhà có trên 1 máy nối mạng LAN thì hợp lắm..
Tập tin đính kèm
Client - Server.rar
(60.67 KiB) Đã tải 1483 lần
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

qnnewcode
Thành viên trung thành
Thành viên trung thành
Bài viết: 248
Ngày tham gia: CN 07/12/2008 5:45 pm

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi qnnewcode » T.Hai 22/12/2008 8:38 pm

A truongphu ơi còn kết nối CSDL SQL với VB Thì sao ạ.E làm theo sách hướng dẫn mà chẳng bao giơ được cả,Như e muốn hiện CSDL lên listview nó không báo lỗi cũng không hiệ là sao ạ(với SQL server 2000)

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 23/12/2008 4:33 am

boy1234 đã viết:gửi bởi boy1234 vào ngày T.Năm 18/12/2008 1:52 pm
Bác Phú có thể mở 1 tiểu mục nhỏ kết nối với SQL Server không em cũng muốn học nỏi

Tôi cũng đang cân nhắc, sợ ôm đồm quá không đến nơi đến chốn thì rách việc. hẹn qnnewcode ngen
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 23/12/2008 4:54 am

99- Cách dùng BOF và EOF
BOF : đầu file và EOF: cuối file

* Một file mdb không có record nào cả, bất cứ lệnh nào sau đây sai recorset di chuyển đều báo lỗi:

Mã: Chọn hết

  1. Move
  2. MoveFirst
  3. MoveNext
  4. MoveLast
  5. MovePrevious

* file có record thì các lệnh sau đây không lỗi mà chả cần điều kiện:

Mã: Chọn hết

  1. MoveFirst
  2. MoveLast

* Còn 3 lệnh cần điều kiện là:
Move
di chuyển thêm bớt tới và lui bao nhiêu record
MoveNext
Phải bảo đảm Record chưa hết (last)
MovePrevious
Phải bảo đảm record chưa là đầu tiên (first)

* Nếu có record, bắt đầu vòng lặp, bạn chỉ ghi:

Mã: Chọn hết

  1. rs.MoveFirst

* và khi chưa biết chắc file có record hay không, bạn mới cho điều kiện:

Mã: Chọn hết

  1. If Not (rs.EOF OR rs.BOF) Then rs.MoveFirst

câu trên có nghĩa là nếu recordset không phải đầu cũng không phải đuôi thì moveFirst
* Khi muốn dùng MoveNext ta viết:

Mã: Chọn hết

  1. if not rs.eof then rs.movenext

nghĩa là nếu không cuối thì chạy tới tiếp
ta hay thấy câu:

Mã: Chọn hết

  1. Do while not rs.eof

có ý nghĩa tương tự
* Khi muốn dùng moveprevious ta viết:

Mã: Chọn hết

  1. if not rs.bof then rs.moveprevious

nghĩa là nếu không đầu tiên thì lùi trước
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 23/12/2008 5:08 am

100- Lệnh Find phải được dùng nhiều hơn
Ta có thói quen dùng:
1- Vòng lặp duyệt recordset, nếu nhận được record ưng ý thì ngưng

Mã: Chọn hết

  1. Rec.movefirst
  2. Do while not rec.eof
  3. if rec!qqq = text1 then
  4. text2 = rec!www
  5. exit do
  6. else
  7. rec.movenext
  8. loop

2- Giản tiện hơn, ta dùng sql

Mã: Chọn hết

  1. rec.close
  2. rec.open "select qqq, www from table1 where qqq = '" & text1 & "'"
  3. text2 = rec!www

3- không dùng vòng lặp chậm tiến trình, không đóng mở recordset phức tạp, ta dùng find

Mã: Chọn hết

  1. rec.movefirst
  2. rec.Find "qqq='" & text1.text & "'"
  3. text2 = rec!www

Chi tiết lệnh find có ở trang 3 cùng topic nầy
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 23/12/2008 8:43 am

101- Xử lý cột excel sang dòng của access
gửi bởi smile251284 vào ngày T.Tư 17/12/2008 8:04 pm
Mình muốn hỏi thêm nếu mình muốn import dữ liệu bên Excell ở dạng hàng ngang thì có thể được không nhỉ? Trong đó các cột bên excell sẽ là các dòng (records) bên access.


Cách thực hiện:
1- Dùng thư viện Excel để chọn cột, copy gởi vào một biến string
2- Tiến hành dùng mảng string để tách các số liệu trong biến trên
ngang đây coi như êm!
3- Dùng thư viện ADODB để mở file access bình thường
4- Tiến hành addnew với các số liệu đã tách trên...
Ví dụ có Book10.xls cùng folder, cột A có 3 record cần xử lý:

Mã: Chọn hết

  1. Dim Ex As New Excel.Application, bb$, cc() As String
  2.  
  3. Private Sub Form_Load()
  4. Set aa = Ex.Workbooks.Open(App.Path & "\Book10.xls")
  5. aa.Worksheets("sheet1").Range("A1", "A3").Copy
  6. bb = Clipboard.GetText
  7. cc = Split(bb, vbCrLf)
  8. MsgBox cc(0)
  9. 'Goi adodb.connection và adodb.recordset Ðê addnew
  10. End Sub
  11.  
  12. Private Sub Form_Terminate()
  13. Ex.Quit
  14. End Sub
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 23/12/2008 8:46 am

102- Ký tự thay thế của Like
gửi bởi chaocanha vào ngày T.Bảy 20/12/2008 8:56 pm
thắc mắc crystal report:
report hiện dữ liệu theo điều kiện trong textbox mà nó toàn trắng xóa


Tại mục 68 tôi đã nêu cách dùng ký tự thay thế của lệnh Like với '%' và '_'
Nhưng:


gửi bởi TTD vào ngày CN 21/12/2008 2:13 pm

Mã: Chọn hết

  1. viewreport "{tblnhomhang.manhom} like '*" & txtmanhom.Text & "*'"


TTD đã chỉ rõ Like khi dùng với crystal report thì '%' lại được thay bằng dấu '*'
Kể cả dùng DAO cũng là '*'
@truongphu: ký tự đại diện còn phụ thuộc vào công cụ mình sử dụng.
Nếu bác rảnh thì thì thử móc DAO ra chơi thử coi nó nó dấu gì
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Ba 23/12/2008 2:53 pm

103- Cách phân trang trong datareport
gửi bởi smile251284 » CN 21/12/2008 5:25 pm
nếu muốn mặc định số lượng record trên mỗi trang thôi thì phải làm như thế nào nhỉ?


Tôi đã thử code sau nhưng không hiệu lực

Mã: Chọn hết

  1. Private Sub Form_Load()
  2. Adodc1.Recordset.PageSize = 3
  3. Adodc1.Recordset.AbsolutePage = 7
  4. MsgBox "Sô trang cua Recordset là: " & Adodc1.Recordset.PageCount
  5. End Sub
  6.  
  7. Private Sub DataReport_Initialize()
  8. MsgBox "Mac Ðinh Sô Record/Trang là: " & DataEnvironment1.rsCommand1.PageSize
  9. DataEnvironment1.rsCommand1.PageSize = 3
  10. MsgBox "3 Record/Trang, Sô Trang se là: " & DataEnvironment1.rsCommand1.PageCount
  11. End Sub


Bạn nào biết cách phân trang xin chỉ giúp.
Tạm thời: Chỉ có cách bạn tăng giảm height của các section thì sẽ có kết quả như ý
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Tư 24/12/2008 12:24 pm

104- Tính tổng theo điều kiện

gửi bởi sirdmit » T.Hai 22/12/2008 2:29 pm

Mã: Chọn hết

  1. qry = "SELECT     [Invoice No], Edp, Item, SUM(Quantity) AS Total" _
  2.                & " From dbo.[Inner]" _
  3.                & " GROUP BY [Invoice No], Edp, Item" _
  4.                & " HAVING      ([Invoice No] = '" + txtInvoice + "')"


gửi bởi lanlan » T.Hai 22/12/2008 3:41 pm
gửi bởi xuanquy_th » Hôm qua 7:14 pm


Mã: Chọn hết

  1. qry = "SELECT SUM(Quantity)" _
  2. & " From dbo.[Inner]" _
  3. & "where [Invoice No] = '" + txtInvoice + "'"
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » T.Năm 25/12/2008 7:30 pm

105- Hỏi về cách chuyển nội dung 1 bảng sang bảng mới
gửi bởi kynguyenkma »25/12/2008 2:49 pm
mình không biết các để chuyển dữ liệu từ bảng này đến bảng kia. bạn nào biết code để move dữ liệu xin chỉ giùm mình! cảm ơn nhiều!


gửi bởi xuanquy_th » 25/12/2008 2:54 pm

Chuyển dữ liệu từ bảng tblA sang bảng tblB

Mã: Chọn hết

  1. Select * Into tblB From tblA 'Trong trường hợp bảng tblB chưa có.
  2. Insert Into tblB Select * From tblA 'Trong trường hợp bảng tblB đã có.


gửi bởi xuanquy_th » 27/12/2008 12:42 pm

Mã: Chọn hết

  1. Option Explicit
  2. Private Function LienKetDuLieu(m_PathData As String, Optional Password As String = "lvtrtu") As ADODB.Connection
  3.     DoEvents
  4.     On Error GoTo err:
  5.         Set LienKetDuLieu = New ADODB.Connection
  6.         LienKetDuLieu.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & m_PathData & ";Jet OLEDB:Database Password=" & Password
  7.         If Left(m_PathData, 2) = "\\" Then LienKetDuLieu.CursorLocation = adUseServer Else LienKetDuLieu.CursorLocation = adUseClient
  8.         LienKetDuLieu.Open
  9.         Exit Function
  10. err:
  11.         Debug.Print "LienKetDuLieu --------> Kh«ng kÕt nèi ®­îc tíi c¬ së d÷ liÖu." & Chr(10) & "<" & m_PathData & ">"
  12. End Function
  13. Private Sub Command1_Click()
  14.     LienKetDuLieu("C:\db1.mdb").Execute "INSERT INTO Table2 ( b ) SELECT Table1.a FROM Table1;"
  15.     Adodc1.ConnectionString = LienKetDuLieu("C:\db1.mdb")
  16.     Adodc1.CommandType = adCmdText
  17.     Adodc1.RecordSource = "Select * from Table2"
  18.     Adodc1.Refresh
  19. End Sub
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » CN 28/12/2008 5:33 am

106- Đưa dữ liệu lên gridview với SQL 2000
gửi bởi qnnewcode » T.Ba 23/12/2008 8:33 pm
làm thế nào để đưa dữ liệu lên gridview với SQL 2000,e làm như sách chả bao giờ nó chạy ổn cả


gửi bởi manhhung87 » T.Ba 23/12/2008 9:04 pm
Nếu là DataGird thì bạn có thể dùng 2 cách để kết nối csdl: ADODC, ADODB
Mình dùng ADODC còn cái còn lại tương tự.
sau khi bạn lấy component s : Microsoft ADO Data Control 6.0 và Microsoft DataGird Control 6.0 và vẽ chúng lên form

Mã: Chọn hết

  1. Private Sub Form_Load()
  2. Me.Adodc1.ConnectionString = " Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Ten_CSDL;Data Source=Ten_Server"
  3. Me.Adodc1.CommandType = adCmdText
  4. Me.Adodc1.RecordSource = "select * from tbNhanVien"
  5. Me.Adodc1.Refresh
  6. '''''''''''''''''''''''''''''''''''''''
  7. Set Me.DataGrid1.DataSource = Adodc1
  8. End Sub
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 510 time

Re: Kết nối CSDL, ADODB. Cập nhật thường xuyên

Gửi bàigửi bởi truongphu » CN 28/12/2008 5:37 am

107- Chỉ hiện lên Datagrid vài trường
gửi bởi qnnewcode » T.Năm 25/12/2008 8:19 am
Bạn cho mình hỏi trong VB6 mình thay đổi header của datagrid được không?và bây giờ mình chỉ muốn hiện 1 số trường trong bảng của mình thôi không hiện hết lên thì sao?


gửi bởi manhhung87 » T.Năm 25/12/2008 8:50 am
Bạn chỉ việc chỉnh sửa trong câu lệnh SQL là xong, muốn lấy bao nhiêu thì chọn cần ấy trường.
Ví dụ:

Mã: Chọn hết

  1. SQL=" Select  MaNV,TenNV,NgaySinh  From tbNhanVien"


Còn nếu muốn sửa Header của từng trường thì bạn thử làm theo cách này xem sao. Để đoạn code này vào sau khi ta đã load hết CSDL nên lưới

Mã: Chọn hết

  1. Me.DataGrid1.Columns(0).Caption = " Ma Nhan Vien"
  2. Me.DataGrid1.Columns(1).Caption = " Ten Nhan Vien"


Còn muốn có Header của Lưởi thì dùng cái này:

Mã: Chọn hết

  1. Me.DataGrid1.Caption = " Danh Sach Nhan Vien"
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Quay về “Ứng dụng Quản lý và Cơ sở dữ liệu”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.2 khách