2: giới thiệu về ado 1

Chuyển đổi dữ liệu30.08.2016Kích124.15 Kb.

You watching: 2: giới thiệu về ado 1

ADO cnạp năng lượng bản

Monday, 28. January 2008, 06:05:26ADO Hãy gọi trước lúc chúng ta phi vào quả đât của ADOADO là gì?Tôi xin miễn bàn cụ thể, những chúng ta cũng có thể xem thêm bên trên trang www.vovisoft.com hay phần nhiều trang khác. Tôi xin nói nthêm gọn: ADO là viết tắt của chữ ActiveX Data Object. Đây là một trong những đối tượng người tiêu dùng giúp cho bạn làm việc với rất nhiều thứ hạng dữ liệu khác nhau.

Giống như ODBC (mở cửa DataBase Connectivity), nghệ thuật lập trình sẵn với OLE DB yên cầu đề nghị được triển khai bằng những lệnh tinh vi cấp thấp API. Chính vì lý do này, Microsoft đã và đang giới thiệu một tờ giao tiếp xây dựng V.I.P ADO được thi công dựa trên kỹ thuật OLE DB có thể chấp nhận được thiết kế nhanh các vận dụng link cơ sở dữ liệu (Cơ sở dữ liệu).

CÁC ĐỐI TƯỢNG LẬPhường TRÌNH ADO CƠ SƠ

Lớp tiếp xúc lập trình tài liệu cao cấp ADO cung cấp một tập thích hợp mọi đối tượng người sử dụng góp họ thuận lợi thao tác làm việc với những nguồn tài liệu khác nhau. Trong các đối tượng này còn có phần đa đối tượng người dùng thiết yếu cần tìm hiểu, đó là: Connection, Recordset, Commvà, Field (ngoài ra còn có: Parameter, Property, Error).

Connection

Đây là một trong đối tượng người tiêu dùng được sử dụng nhằm chế tạo ra link thân chương trình với cơ sở dữ liệu. Sau lúc sẽ tạo được link ngừng họ bắt đầu hoàn toàn có thể tiến hành những thao tác cách xử lý tài liệu trên cơ sở dữ liệu này.

Để tạo nên lập một liên kết Connection chúng ta yêu cầu xác định rõ những đọc tin cần thiết bao gồm:

• Provider: Tên của lịch trình tiếp xúc dữ liệu (OLE DB Provider).

• Data source: Tên đầy đủ của tập tin CSDL xuất xắc thương hiệu nguồn dữ liệu ODBC buộc phải link.

• Username: Đây là một trong thông báo tùy chọn cách thức tên của người dùng được tổ chức triển khai bên phía trong cơ sở dữ liệu này. Nó dựa vào vào những lọai CSDL, với những DataBase Access chúng ta có thể bỏ qua thông tin này.

• Password: Chuỗi mật khẩu tương ứng với User name nhằm xâm nhập CSDLCommand

Đối tượng Command vẫn cho phép chương trình rất có thể call triển khai một câu lệnh tầm nã vấn SQL trên CSDL tuyệt call tiến hành một thủ tục xử lý đã được thiết lập trong DataBase (Stored procedure).

Nếu các giấy tờ thủ tục xử lý trong CSDL này có dìm với trả về quý hiếm, thì khi đó họ sẽ sử dụng đối tượng người dùng Parameter

Với DataBase Access, những truy vấn vấn đã được xuất bản sẵn vào tập tin MDB (bao hàm những truy hỏi vấn chọn, thêm, xóa, sửa,...) hoàn toàn có thể được coi như như là các stored procedure.

Recordset

Là đối tượng người sử dụng lưu trữ một tập họp các chủng loại tin được chọn từ bỏ những bảng bao gồm vào cơ sở dữ liệu. Thông qua những đối tượng người tiêu dùng Recordset, bạn cũng có thể triển khai những giải pháp xử lý nhỏng hiển thị tài liệu, update, tra cứu kiếm,...với cơ sở dữ liệu đã nối kết. Đôi khi các Commvà gồm câu lệnh truy tìm vấn tiến hành dạng SELECT số đông trả về một bộ chủng loại tin (Recordset).

Trong quy trình xây dựng cơ sở dữ liệu cùng với Visual Basic 6.0 chúng ta có thể tạo thành Recordset bằng nhiều phương pháp tại phần lớn thời gian không giống nhau như: cần sử dụng ADO control, DataEnvirement tốt cần sử dụng bằng lệnh.Đối tượng Field

Là đối tượng người tiêu dùng con chất nhận được chúng ta tầm nã xuất cùng thao tác với cùng 1 trường (cột) dữ liệu gồm vào một cỗ mẫu mã tin Recordmix. Với đối tượng người dùng field bao gồm nhị trực thuộc tính yêu cầu quyên tâm, kia là: Name (thương hiệu ngôi trường dữ liệu) cùng Type (hình trạng dữ liệu của trường)

Bây tiếng bọn họ đang lấn sân vào từng trực thuộc tính và cách thức bao gồm của các đối tượng người sử dụng trên.

*
CONNECTION

Sau lúc sản xuất xong liên kết dữ liệu, họ new hoàn toàn có thể tạo nên những đối tượng người dùng không giống dựa trên link này.

1. Thuộc tính links dữ liệu:

Trước khi triển khai tạo một link dữ liệu, bọn họ yêu cầu knhì báo các tđê mê số quan trọng cho đối tượng người tiêu dùng Connection nhỏng tên hệ thống, thương hiệu cửa hàng dữ liệu, tên người tiêu dùng và mật khẩu. Sau đó là những nằm trong tính đặc biệt đề nghị knhì báo lúc tạo thành một links tài liệu.

_Thuộc tính ConnectionString: là chuỗi cam kết từ đựng những đọc tin cần thiết đến câu hỏi nối kết tài liệu. Chuỗi ký kết từ bỏ này gồm những yếu tố thông báo như:

_Provider: tên trình links tài liệu OLE DB

_Server: tên máy chủ đựng cơ sở dữ liệu đề xuất kết nối

_Use ID: mã số tín đồ dùng

_Password: mật khẩu đăng nhập bạn dùng

_Data Source: nguồn dữ liệu kết nối

ví dụ như lúc kết nối với cùng một cửa hàng dữ liệu Squốc lộ Server mang tên QLTV chúng ta sẽ sở hữu được chỗi sConnection như sau: sConnection="Provider=SQLOLEDB;" và "Server=ServerNT; User ID=MyID; " và "Password=MyPWD; Data Source=QLTV"

Một số connection string xem thêm từ bỏ website Erlandsen Data Consulting:

Kết nối vào Access database dùng standard security:

cn.Open "driver=Microsoft Access Driver (*.mdb);" & _

"dbq=c:foldernamedatabasename.mdb;uid=admin;pwd="

Kết nối vào một Access database cần sử dụng một workgroup system database:

cn.mở cửa "driver=Microsoft Access Driver (*.mdb);" & _

"dbq=c:foldernamedatabasename.mdb;" và _

"systemdb=c:foldernamedatabasename.mdw;", _

"userid", "userpassword"

Kết nối vào một trong những Access database exclusively:

cn.mở cửa "driver=Microsoft Access Driver (*.mdb);" và _

"dbq=c:foldernamedatabasename.mdb;" & _

"exclusive=1;uid=admin;pwd="

Kết nối vào một SQL hệ thống cần sử dụng standard sequrity:

cn.Open "driver=Squốc lộ Server;" & _

"server=servername;database=databasename;" & _

"uid=userid;pwd=userpassword"

Kết nối vào SQL server dùng trusted connection security:

cn.xuất hiện "driver=SQL Server;" và _

"server=servername;database=databasename;" và _

"uid=;pwd="

Kết nối vào trong 1 SQL VPS từ name cùng password:

cn.Properties("Prompt") = adPromptAlways

cn.mở cửa "driver=SQL Server;" & _

"server=servername;database=databasename"

Connecting lớn a Sybase database using the Sybase System 12 driver:

cn.xuất hiện "driver=SYBASE ASE ODBC Driver;" & _

"srvr=servername;" và _

"uid=userid;pwd=userpassword"

Connecting khổng lồ a Sybase database using the Sybase System 11 driver:

cn.xuất hiện "driver=SYBASE SYSTEM 11;" và _

"srvr=servername;" và _

"uid=userid;pwd=userpassword"

Connecting to lớn an Oracle database using the current Microsoft ODBC driver:

cn.Open "driver=Microsoft ODBC for Oracle;" & _

"server=servername.world;" và _

"uid=userid;pwd=userpassword"

Connecting lớn an Oracle database using the Oracle ODBC driver:

cn.mở cửa "driver=Oracle ODBC Driver;" & _

"dbq=databasename;" & _

"uid=userid;pwd=userpassword"

Quý khách hàng bắt buộc có mang dbq databasename trong tệp tin tnsnames.ora.

Kết nối vào trong 1 Excel workbook:

cn.Open "driver=Microsoft Excel Driver (*.xls);" và _

"driverid=790;dbq=c:foldernameworkbookname.xls;" & _

"defaultdir=c:foldername"

Kết nối vào một trong những dBase database:

cn.xuất hiện "driver=Microsoft dBase Driver (*.dbf);" & _

"driverid=277;dbq=c:foldername"

" specify the filename when you open the recordset

rs.xuất hiện "select * from tablename.dbf", cn, , , adCmdText

Quý Khách yêu cầu buộc phải Borland Database Engine (BDE) để cập nhật tệp tin dBase.

Kết nối vào một trong những Paradox database:

cn.Open "driver=Microsoft Paradox Driver (*.db );" và _

"driverid=538;fil=Paradox 5.X;" & _

"defaultdir=c:foldername;" & _

"dbq=c:foldername;collatingsequence=ASCII"

The extra space character after *.db in the driver name is necessary.

quý khách bắt buộc đề nghị Borlvà Database Engine (BDE) nhằm cập nhật file ISAM.

Kết nối vào trong 1 file text:

cn.xuất hiện "driver=Microsoft Text Driver (*.txt; *.csv);" và _

"dbq=c:foldername;" và _

"extensions=asc,csv,tab,txt,log,*."

rs.Open "select * from filename.csv", cn, adOpenStatic, adLockReadOnly, adCmdText

Định dạng của tệp tin text được có mang vị tệp tin schema. File biết tin schema luôn luôn luôn được lấy tên là Schema.ini và luôn luôn luôn được đặt trong thuộc thư mục với file nguồn. File này cung cấp tin về định dạng tổng thể của file, tên cột cùng kiểu dáng dữ liệu. File Schema.ini luôn luôn luôn được hưởng thụ để mang dữ liệu tự fixed-width data.

Một số ví dụ về tệp tin Schema.ini

lấy ví dụ tệp tin Schema.ini mang đến file filename.txt cất thương hiệu các cột ở cần sử dụng đầu tiên:

Format=TabDelimited

ColNameHeader=True

MaxScanRows=0

CharacterSet=ANSI

lấy ví dụ như tệp tin Schema.ini mang lại filefilename.txt chứa vệt ";" phân cách thân các trường dữ liệu, cùng số 1 tiên chứa những thương hiệu của những cột dữ liệu:

Format=Delimited(;)

ColNameHeader=True

MaxScanRows=0

CharacterSet=ANSI

lấy ví dụ như về tệp tin Schema.ini cho filefilename.txt chứa fixed width data ko có tên các cột tài liệu ở chiếc đầu:

Format=FixedLength

ColNameHeader=False

Col1=FieldName1 Char Width 30

Col2=FieldName2 Date Width 15

Col3=FieldName3 Integer Width 15

Col4=FieldName4 Float Width 20

CharacterSet=ANSI

_Thuộc tính CursorLocation: đó là trực thuộc tính khí cụ bé trỏ links tài liệu sẽ được tạo thành trên máy chủ tốt sản phẩm công nghệ con. Các hằng số sử dụng cho ở trong tính này gồm:

adUseServer: nhỏ trỏ liên kết dữ liệu được tạo nên trên sever. Mọi sửa thay đổi của những người tiêu dùng không giống trên mạng được biểu đạt tức thời bên trên tài liệu của máy trạm.

adUseClient: nhỏ trỏ link dữ liệu được chế tạo tại sản phẩm công nghệ trạm. Mọi sửa thay đổi của người dùng không giống trên mạng không được diễn tả trên dữ liệu của máy trạm cho đến Khi được tầm nã xuất lại. Với mẫu mã bé trỏ này, dữ liệu trên trang bị trạm có những thuận tiện mà lại dạng hình adUseServer không có.

Thuộc tính này phổ biến đến Connection lẫn Recordset, tức thị toàn bộ những Recordphối tạo ra xuất phát từ 1 Connection sẽ có cùng thứ hạng nhỏ trỏ còn nếu không được nguyên lý tường minch.

2.Tạo đối tượng người tiêu dùng Connection cần sử dụng lệnh
*
Tại thời gian vận dụng đang tiến hành (runtime), chúng ta có thể tạo Connection với công việc sau:2.1 Bước1:
Khai báo tham chiếu mang lại thư viện ADO

Để áp dụng nghệ thuật ADO, ta đề nghị knhị báo ttê mê chiếu cho thỏng viện ADO vào áp dụng nhỏng sau:

• Chọn Project | References...

• Chọn Microsoft ActiveX Data Objects X.X Library, với X.X là phiên bạn dạng có bên trên thiết bị trạm tùy theo khối hệ thống, tiếp đến chọn OK.

2.2 Cách 2:
Knhị báo với khởi tạo thành một đối tượng Connection

Thứ nhất, ta knhì báo một thay đổi đối tượng người dùng dạng hình Connection của ADO nhỏng sau:

Dyên ổn cnn as New ADODB.Connection

Trong trường đúng theo áp dụng có tđam mê chiếu đến nhiều thư viện xây dựng ADO, RDO (Remote Data Object),...giả dụ chúng ta knhị báo một biến Connection tuy vậy không chỉ ví dụ Connection trực thuộc thỏng viện như thế nào thì đối tượng Connection được tạo nên đang ở trong tlỗi viện tsay đắm chiếu ưu tiên. Thư viện tmê mệt chiếu ưu tiên là thư viện được link trước các thỏng viện khác vào danh sách của bảng References.

2.3 Cách 3: Knhị báo trực thuộc tính link dữ liệu

Gán trực thuộc tính ConnectionString đến đối tượng người tiêu dùng Connection cnn theo cú pháp sau:

cnn.ConnectionString ="Provider=..."

cnn.CursorLocation = adUseClient hay adUseServer

Các chuổi ConnectionString xin tham khảo phần trên đang trình làng.2.4 Cách 4: Kết nối

Dùng cách làm xuất hiện của Connection để thực hiện kết nối. Cú pháp sử dụng gồm dạng:

cnn.Open

Ví dụ: để thực hiện liên kết cùng với các đại lý dữ liệu Biblio.mdb, ta viết đọan mã nhỏng sau:

DBName= ActiveWorkbook.Path và "Biblio.mdb"

cnn.ConnectionString="Provider=" và "Microsoft.Jet.OLEDB.4.0; Data Source=" & DBname

cnn.CursorLocation=adUseClient

cnn.xuất hiện

3. Thuộc tính State

Trong môi trường xung quanh các người tiêu dùng, để rời bao gồm vô số Connection kết nối vào các đại lý dữ liệu, đôi lúc sau khoản thời gian tạo liên kết với rước dữ liệu về lắp thêm 1-1 hoàn thành công tác sẽ đóng góp kết nối đi. khi quan trọng đang links lại. Trong trường hợp này, họ đã nhờ vào ở trong tính State của Connection nhằm soát sổ tinh thần link của Connection đã đóng góp hay sẽ mở.

Sau Khi liên kết, bọn họ cần sử dụng nằm trong tính State nhằm đánh giá kết nối có thành công xuất sắc hay là không.Hằng |Trị |Ý nghĩa adStateClosed |0 |Không kết nối adStateOpen |1 |Đang kết nối Ví dụ nhỏng đọan mã sau:

If cnn.State=1 Then

Msgbox "Kết nối thành công xuất sắc."

Else

Msgbox "Kết nối ko thành công."

End If

4. Phương thơm thức Excecute

Sau Lúc liên kết thành công, ta rất có thể sử dụng cách tiến hành Exedễ thương của connection nhằm thực hiện truy vấn giỏi update tài liệu. Cú pháp như sau:

Set = .Exedễ thương (<><,>)

mang đến tróc nã xuất Hoặc

.Execute (<,><,>)

cho cập nhật

Nếu kiểu chuỗi là: Thì hình dạng số Có trị là Tên bảng adCmdTable 2 Câu truy vấn Select adCmdText 1 Tên Query bên trên Access hoặc Stored Procedure vào Squốc lộ Server adCmdStoreProc 4Crúc ý:

• Trong ngôi trường hòa hợp rút ít trích đối số không đề nghị chỉ ra rằng.

See more: Cách Sử Dụng Pin Laptop Dell, Hướng Dẫn Sử Dụng Pin Laptop Dell Hiệu Quả Nhất

• Đối số hoàn toàn có thể không chỉ ra, nhưng lại trường hợp chỉ ra rằng thì đề xuất cân xứng cùng với , nếu như không sẽ gây lỗi.

• Recordset được tạo thành Theo phong cách này còn có thuộc tính chỉ hiểu (ReadOnly)

Ví dụ:Dim rstdmnv as New ADOB.Recordmix

Set rstdmnv=cnn.Exedễ thương ("dmnv", , adCmdTable) 5. Đóng links dữ liệu

Một liên kết dữ liệu (Connection) đang auto được đóng lúc đóng góp áp dụng. Tuy nhiên vào công tác khi đề xuất đóng góp liên kết tài liệu lại, bạn có thể cần sử dụng cách làm Cthảm bại theo cú pháp sau:

cnn.Cđại bại COMMAND

Sau Khi triển khai kết nối cùng với mối cung cấp dữ liệu qua Connection, chúng ta có thể sử dụng Command để tiến hành một lệnh truy tìm vấn Squốc lộ trên mối cung cấp dữ liệu đó tốt hotline thực hiện một giấy tờ thủ tục nội vào cửa hàng dữ liệu này. Comm& quan trọng đặc biệt hữu dụng Khi bắt buộc thực hiện những lần và một lệnh hay các truy hỏi vấn gồm tmê say số. Khởi tạo ra cùng làm việc cùng với Command

Các thuộc tính chính

CommandText: đây là thuộc tính đặc trưng tuyệt nhất của Commvà. Nội dung của trực thuộc tính này là chuỗi lệnh Squốc lộ, thương hiệu truy vấn, tên bảng hoặc tên giấy tờ thủ tục nội mong mỏi tiến hành trên mối cung cấp dữ liệu.

• CommandType: là trực thuộc tính giúp ADO mau lẹ xác minh mẫu mã lệnh có trong CommandText. Nếu trị của CommandType cần sử dụng không đúng dạng hình của CommandText thì công tác đã báo lỗi. Chính vị vậy, chúng ta nên biết với sử dụng các hằng hay được dùng mang lại CommandType sau:

- adCmdText: giả dụ CommandText là câu tróc nã vấn Squốc lộ.

- adCmdTable: nếu như CommandText là tên gọi bảng của cửa hàng tài liệu.

- adCmdStoreProc: ví như CommandText là tên gọi giấy tờ thủ tục nội.

- adCmdUnknown: lúc không biết phong cách của CommandText. Đây là trị mặc định, trong ngôi trường vừa lòng này, trình cung cấp OLEDB đang khẳng định loại. Tuy nhiên đấy là điều không nên và làm tốn thời hạn.

- adCmdExecutteNoRecords: ví như CommandText là lệnh tuyệt thủ tục nội không trả về những mẫu mã tin (như khi cập nhật, xóa,...) với được dùng thông thường cùng với adCmdStoreProc.

- adCmdTabldirect: trường hợp mngơi nghỉ thẳng bảng của đại lý tài liệu.

ActiveConnection: thuộc tính này xác định link dữ liệu (Connection) nhưng mà Commvà sẽ thực hiện bên trên kia. Vì thay, giả dụ vứt trống nằm trong tính này đang gây nên lỗi lúc triển khai lệnh.

Chúng ta rất có thể sử dụng chuỗi ConnectionString của Connection hoặc bạn dạng thân Connection đã kết nối để gán trị mang lại thuộc tính này. thường thì, lúc buộc phải thao tác làm việc với khá nhiều Command, bọn họ nên gán thiết yếu đối tượng người tiêu dùng Connection đến trực thuộc tính ActiveConnection của các Commvà vày trường hợp cần sử dụng ConnectionString để gán sẽ khởi tạo ra những liên kết đơn lẻ.Làm bài toán cùng với Command

Để thao tác làm việc với đối tượng người dùng Command, bọn họ sẽ thực hiện công việc sau:

Cách 1: Knhì báo cùng cấp phát vùng lưu giữ thay đổi Command

Có nhì phương pháp knhì báo Command:

- Khai báo và cấp phép vùng nhớ cùng lúc

Dyên ổn cmd As New ADODB.Comm&

- Knhị báo trước, khi sử dụng đã cấp phát vùng ghi nhớ sau.

Dyên cmd As ADODB.Command

Set cmd=New ADODB.Comm& Bước 2: Đặt những ở trong tính yêu cầu thiết

Các ở trong tính quan trọng mang lại đối tượng Command gồm:

• Thuộc tính CommandText

• Thuộc tính CommandType

• Thuộc tính ActiveConnection Cách 3: call triển khai Command

Để Hotline triển khai một Command, chúng ta sử dụng cách làm Exeđáng yêu theo cú pháp đơn giản và dễ dàng như sau: • Đối với Command dạng rút ít trích (Tức là Select...):

Set =.Execute()

• Đối cùng với Comm& update (Insert, Delete, Update,...)

.Execute()

Với là thay đổi giao diện Recordphối của ADO, là trở thành đối tượng người sử dụng command mong mỏi triển khai.

Ví dụ: Đọan công tác sau vẫn minch họa việc khởi chế tạo và Điện thoại tư vấn triển khai Command trong Visual Basic (tương tự như vào VBA)

Giả sử tập tin quản lý nhân sự nhansu.mdb được tàng trữ bên dưới đây:

Const DBPATH="C:QLNSNhansu.mdb"

"Tạo đối tượng người sử dụng commvà đồ vật nhất

Dim cmd1 As New ADODB.Commvà

Dlặng rst1 As New ADODB.Recordset

cmd1.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" và DBPATH

cmd.CommandText="SELECT malớn, tento" & "FROM dmto"

Set rst1=cmd.Execute()

"Tức là lựa chọn mã tổ, thương hiệu tổ từ bỏ bảng dmto lớn (hạng mục tổ)

"Tạo đối tượng người tiêu dùng command sản phẩm công nghệ hai

Dlặng cmd2 As New ADODB.Command

Dlặng rst2 As New ADODB.Recordphối

Set cmd2.ActiveConnection=cmd.ActiveConnection

cmd2.CommandText="SELECT * FROM dmnv"

Set rst2=cmd2.Execute()

Commvà bao gồm tham mê số

Muốn triển khai các lần một Commvà cùng với các điều kiện khác biệt, ta có thể áp dụng Commvà gồm tsay đắm số. Phần văn bản tiếp theo đây đang ra mắt với chúng ta bí quyết sản xuất cùng điện thoại tư vấn thực hiện Command bao gồm tmê mệt số tùy theo lọai của đối tượng người sử dụng Commvà.

1. Với CommandText là chuỗi lệnh SQL

Trong ngôi trường đúng theo ngôn từ của CommandText là chuỗi lệnh Squốc lộ, bạn có thể sử dụng vệt ? vắt cho những giá trị cụ thể vào phần ĐK của câu lệnh Squốc lộ.

lấy ví dụ như để mang danh sách nhân viên cấp dưới ở trong những tổ khác nhau, bạn có thể dùng:

cmd.CommandText="Select tenkhổng lồ From " và "dmto Where mato=?"

Trong ví dụ bên trên bọn họ thấy cam kết từ ? đã làm được thay thế một quý hiếm ví dụ vào biểu thức điều kiện. Để điện thoại tư vấn thực hiện Commvà gồm tmê mệt số này, bọn họ sẽ thực hiện cú pháp không thiếu của cách tiến hành Excecute nlỗi sau:. Excute(Affected, Parameters, Options)

Cả cha tđắm say số trong cách làm Exexinh tươi phần nhiều là tyêu thích số tùy lựa chọn. Ý nghĩa của cha tđê mê số này hệt như sau:

• Affected: là một trong những biến phong cách Long nhằm nhấn về số mẫu mã tin bị tác động của Commvà. Với các Commvà rút ít trích, thay đổi này không tạo nên điều gì nhưng với phần đa Comm& update...bạn có thể biết được số mẫu tin được thay đổi giỏi xóa vày Comm&.

Parameters: những quý giá đã truyền mang lại ttê mê số của Command trường hợp bao gồm. Trường đúng theo Comm& có tương đối nhiều hơn một tmê say số thì các giá trị được truyền mang đến tsi số của Command sẽ được lưu vào một đổi thay mảng kiểu Variant.

do vậy nhằm Hotline tiến hành comm& trên cùng với Mato đề xuất thanh lọc là chuỗi strMato bọn họ đã dùng cú pháp như sau:

Set rst=cmd.Execute(, strmato)

2. Với CommandText là tên giấy tờ thủ tục nội

Trong trường đúng theo đề xuất Điện thoại tư vấn tiến hành một giấy tờ thủ tục nội vào cửa hàng dữ liệu, chúng ta cũng triển khai tựa như chỉ có khác là thuộc tính CommandText vẫn đựng thương hiệu thủ tục và CommandType là adCmdStoreProc. Đọan lệnh dưới đây đang hotline triển khai một truy tìm vấn rút ít trích mang tên Q_para để đưa về list các nhân viên cấp dưới gồm tuổi từ bỏ đôi mươi cho 25 (Q_para có tác dụng rút ít trích báo cáo những nhân viên cấp dưới gồm lứa tuổi trường đoản cú t1 mang lại t2 cùng với t1, t2 là nhị tham số của truy vấn vấn).

cmd.CommandText = "Q_para"

cmd.CommandType = adCmdStoreProc

Set rst = cmd.Execute(,Array(đôi mươi,25)) Chú ý: Cũng như Recordmix được tạo ra từ cách thức Exexinh tươi của Connection, Recordset được tạo ra theo cách này còn có thuộc tính chỉ đọc.RECORDSET - BỘ MẪU TINRecordset nói một cách khác là cỗ mẫu tin. Đây là đối tượng người sử dụng thiết yếu của mô hình ADo, đối tượng người dùng được dùng để làm hiển thị với update dữ liệu vào lập trình sẵn vận dụng CSDL.

Mỗi dòng tài liệu có trong cỗ mẫu mã tin được Gọi là mẫu tin (record). Tuy bộ chủng loại tin rất có thể chứa đựng nhiều mẫu mã tin tuy nhiên trên 1 thời điểm, chúng ta chỉ hoàn toàn có thể thao tác cùng với đúng một mẫu tin Điện thoại tư vấn là mẫu tin hiện nay hành của cục mẫu tin cơ mà thôi. Mỗi cột dữ liệu gồm vào cỗ mẫu mã tin được Gọi là ngôi trường dữ liệu tốt Field.

Phân lọai

Trong quá trình thiết kế cửa hàng dữ liệu, mỗi một khi tạo nên bộ chủng loại tin, bọn họ phải khẳng định trước lọai của cục chủng loại tin yêu cầu sản xuất. Có bốn lọai chính là: Static, Dynamic, Keyset và Forwardonly. Mỗi lọai bên trên phía trên sẽ được dùng phụ thuộc vào địa chỉ với chân thành và ý nghĩa sử dụng nlỗi sau:

adOpenStatic: bộ mẫu tin sẽ tiến hành tạo trên vật dụng con, đa số biến đổi bên trên tài liệu mối cung cấp của Recordset do mọi người tiêu dùng không giống tiến hành sẽ không còn tự động hóa update.

adOpenDynamic: cỗ mẫu mã tin sẽ được tạo nên trên máy chủ và gần như biến đổi bên trên tài liệu mối cung cấp của Recordphối vẫn tự động update hiển thị đến tất cả gần như người tiêu dùng vẫn thao tác trên thuộc bộ mẫu tin. • adOpenKeyset: tương tự như nlỗi lọai Dynamic, dẫu vậy không từ bỏ cập nhật các chủng loại tin bị xóa xuất xắc thêm new vì chưng các người tiêu dùng sẽ áp dụng bình thường Recordset, không truy vấn được hầu hết chủng loại tin bị xóa vì người dùng không giống cùng những thay đổi bởi vì người tiêu dùng không giống vẫn được hiển thị.

adOpenForwardOnly: cỗ chủng loại tin được tạo ra cùng với lọai này sẽ nằm ở thiết bị nhỏ như adOpenStatic và chỉ chất nhận được di chuyển chủng loại tin đi tời bởi cách làm MoveNext.

Knhì báo cùng khởi sản xuất cỗ mẫu mã tin

1. Recordphối cùng với ADO Data Control

Trong quá trình làm việc với tinh chỉnh ADO Data Control trước đó, họ đã từng có lần thao tác cùng với bộ mẫu tin vào điều khiển ADO Data Control thông qua cú pháp:

.Recordset

Hoặc khai báo đổi thay kiểu ADODB.Recordset, kế tiếp gán đổi thay Recordphối này với cỗ mẫu mã tin tất cả trong điều khiển và tinh chỉnh ADO Data Control

Dyên rst As New ADODB.Recordset

Set rst=.Recordphối

2. Tạo Recordmix bởi lệnh

Làm việc với bộ mẫu tin trong tinh chỉnh và điều khiển ADO Data Control có nhiều tiêu giảm, trong những số đó trông rất nổi bật nhất là phải đặt điều khiển ADo trên những size với những cỗ mẫu tin phải được chế tạo ra trước tại thời gian xây dựng. Môi trường lập trình bài bản đòi hỏi mọi người chúng ta phải có thể chế tạo với cách xử trí những đối tượng người sử dụng trong mô hình ADO, nhất là đối tượng Recordset, trên thời khắc chạy lịch trình.

Phần văn bản trình bày sau đây đang trình diễn cách khai báo cùng khởi chế tạo ra đối tượng người dùng Recordphối trên thời khắc chạy lịch trình.

Để thao tác với đối tượng người tiêu dùng cỗ chủng loại tin Recordset, bọn họ đề nghị triển khai quá trình sau: Cách 1: Knhị báo thay đổi cỗ mẫu mã tin

Dyên rst As ADODB.Recordset Cách 2: Cấp phân phát vùng lưu giữ trước lúc làm việc với rst

Set rst=New ADODB.Recordset

Bước 3: Khởi tạo các giá trị mang đến vươn lên là cỗ mẫu mã tin rst

Sử dụng cách thức mở cửa theo cú pháp tiếp sau đây để khởi khiến cho trở thành Recordset, rst như sau:

rst.xuất hiện , , , ,

Trong đó:

Source: chuỗi xác minh nguồn dữ liệu của bộ mẫu mã tin là tên một bảng giỏi chuỗi câu lệnh Squốc lộ.• Connection: mọt kết nối dữ liệu sẽ tiến hành dùng.

Type: những hằng số đã cho thấy lọai của Recordset. thường thì, khi viết những áp dụng điều khiển xe trên thứ 1-1, họ thường được sử dụng lọai adOpenStatic.

Lock: thuộc tính xác định tinh thần cho phép khóa tài liệu Khi cập nhật bên trên cỗ mẫu tin. Các hằng trị của trực thuộc tính Loông chồng gồm:

Trị hằng Ý nghĩa

adLockBatchOptimistic |4 |Với hình dáng khóa này hoàn toàn có thể update nhiều mẫu tin đồng thời cùng các chủng loại tin được cập nhật chỉ bị khóa Lúc phạt lệnh update.adLockOptimistic |3 |Cập nhật từng chủng loại tin cùng chủng loại tin được cập nhật chỉ bị khóa khi phát lệnh update.adLockPessimistic |2 |Với kiểu dáng này, mẫu mã tin sẽ bị khóa ngay lập tức từ bỏ Lúc gửi lịch sự trạng thái sửa đổi xuất xắc thêm bắt đầu. Chỉ hoàn toàn có thể thực hiện hình dáng khóa này cùng với nằm trong tính CursorLocation của recordphối là adUseServeradLockReadOnly |1 |Chỉ có thể chấp nhận được đọc

Việc phép tắc nằm trong tính Loông chồng của những Recordmix cũng rất quan trọng. Nếu bọn họ cần tạo thành một bộ chủng loại tin chỉ để tính tóan, thì có thể dùng adLockReadOnly. Trong lúc đó, nếu như muốn chế tác một bộ chủng loại tin nhằm hiển thị với cập nhật dữ liệu, họ cần dùng quý giá adLockOptimistic, adLockBatchOptimistic hay adLockPessimistic.

Option: là trực thuộc tính xác minh hình dạng nguồn dữ liệu Source, rất có thể gồm những trị sau: Hằng trị |Ý nghĩa |Trị adCmdTable |lúc Source là tên bảng, tên bảng Query trên Access |2 adCmdText |khi Source là truy hỏi vấn SQL |1 adCmdStoreProc|khi Source là Stored Procedure vào Squốc lộ SERVER |4 Trong một vài trường hợp, bạn cũng có thể ghnghiền bước 1 và bước 2 thành một bước tuyệt nhất bằng cách vừa knhì báo vừa cấp phép vùng nhớ bởi cú pháp nlỗi sau:

Dlặng rst As New ADODB.Recordmix

Các giải pháp xử lý với cỗ mẫu mã tinThuộc tính State

Tương trường đoản cú nhỏng ở trong tính State vẫn trình bày vào phần Connection, ở trong tính State của cục mẫu tin Recordphối vẫn đã cho thấy tinh thần của bộ mẫu mã tin là đã mở giỏi đóng. Thuộc tính này còn có các hằng trị sau:

adStateClosed (0) tinh thần đóng

adStateOpen (1) tâm lý mở

Đóng và msinh hoạt cỗ chủng loại tin

Để đóng liên kết dữ liệu thân một đối tượng người sử dụng Recordmix cùng với tài liệu thật gồm trong các đại lý tài liệu, bạn cũng có thể dùng phương thức Cthua kém theo cú pháp

Rst.Cđại bại

Sau đó, khi đề nghị, họ sẽ hoàn toàn có thể tạo ra lại links nlỗi dòng lệnh bên dưới đây:

If rst.State=adStateClosed then rst.Open

Truy xuất những ngôi trường dữ liệu

lúc bắt buộc tróc nã xuất quý giá của một trường làm sao đó của Recordphối, bạn có thể cần sử dụng một trong những phương pháp sau:("").Value

hoặc

!.Value

hoặc

(index).Value

Với Index là số sản phẩm công nghệ trường đoản cú ngôi trường mong mỏi truy hỏi xuất. Giá trị của Index được xem từ bỏ 0 mang đến số ngôi trường -1. Các ở trong tính mẫu mã tin thường dùng

• Thuộc tính Recordcount (trị Long, chỉ đọc): ở trong tính này đựng số mẫu mã tin hiện nay tất cả vào cỗ mẫu mã tin. Thuộc tính này thường chỉ được cập nhật khi tất cả sự dịch rời chủng loại tin hiện nay hành. Recordcount sẽ có trị là -1 khi không khẳng định được số chủng loại tin tuyệt Lúc mẫu mã con trỏ là adOpenForwardOnly.

• Thuộc tính BOF cùng EOF

_Thuộc tính BOF: nếu như thuộc tính này có quý hiếm là True thì mẫu mã tin hiện tại hành đang đứng trước chủng loại tin đầu tiên vào bộ mẫu tin Recordphối. Lúc này, hầu hết thao tác nhỏng dịch chuyển mẫu mã tin về trước, xóa mẫu tin hiện nay hành, truy tìm xuất giá trị những field...các tạo thành lỗi. Ở những địa điểm khác, trực thuộc tính BOF có mức giá trị là False.

_Thuộc tính EOF: giống như như trực thuộc tính BOF, ở trong tính EOF đã đã cho thấy chủng loại tin hiện hành tất cả đang che khuất chủng loại tin ở đầu cuối hay là không. Nếu đúng, EOF bao gồm trị là True, trở lại sẽ có được trị là False. Cũng nlỗi BOF, nếu EOF là True, hồ hết thao tác làm việc như dịch chuyển chủng loại tin trong tương lai, xóa mẫu tin hiện tại hành, truy tìm xuất cực hiếm những field...mọi tạo ra lỗi.

AbsolutePostion (trị Long): thuộc tính cất số đồ vật trường đoản cú của mẫu tin hiện tại hành vào bộ mẫu tin Recordphối, bao gồm các hằng đặc biệt sau:

_adPosUnknown: (-1) Recordphối trống rỗng, địa chỉ hiện tại hành không xác minh.

_adPosBOF: (-2) địa chỉ chủng loại tin hiện hành sống BOF, nghĩa là thuộc tính BOF là True.

See more: Win 10 32Bit Nhận Đủ 4Gb Ram Cho Window 32Bit, Nhận Đủ 4Gb Ram Trên Windows 32Bit

_adPosEOF: (-3) địa điểm mẫu tin hiện nay hành ngơi nghỉ EOF, tức là trực thuộc tính EOF là True.

BookMark: (Trị Variant) trực thuộc tính tàng trữ công bố địa điểm của mẫu tin hiện nay hành bên trên Recordphối. Chúng ta thường dùng ở trong tính này để tàng trữ với hồi sinh vị trí mẫu tin hiện hành của cục mẫu tin trong những giải pháp xử lý update tài liệu. Mỗi mẫu tin bao gồm trị Bookmark không giống nhau.Crúc ý:

Sự biệt lập giữa AbsolutePosition với BookMark: mặc dù thuộc xác xác định trí của chủng loại tin hiện nay hành, nhưng lại sau thời điểm huỷ một chủng loại tin ở trước địa điểm hiện hành, giá trị AbsolutePosition sẽ bị biến đổi còn BookMark thì không.

EditMode: (chỉ đọc) chỉ triệu chứng của mẫu mã tin hiện tại hành, gồm các trị sau:

Hằng Trị Ý nghĩa

adEditNone 0 Tình trạng bình thườngadEditInProgress 1 Tình trạng sẽ sửa thay đổi chưa cập nhậtadEditAdd 2 Tình trạng đang thêm new chưa cập nhậtadEditDelete 4 Tình trạng được lưu lại hủy chưa cập nhậtKiểm tra Recordmix rỗng

thường thì các giải pháp xử lý trên cỗ mẫu mã tin Recordphối chỉ bao gồm chức năng Lúc bộ chủng loại tin kia đang chứa số liệu. Có rất nhiều xử trí nhỏng xóa, sửa, thanh lọc tài liệu...sẽ không còn họat hễ được lúc cỗ mẫu mã tin vẫn trống rỗng. Chính bởi nguyên do này, vào một vài cách xử trí, chúng ta đã chất vấn trường hợp cỗ mẫu tin Recordset đã xử lý theo một biện pháp làm sao kia phụ thuộc vào cú pháp sau:

If rst.BOF and rst.EOF then

Else

End If

Hoặc

If rst.BOF & rst.EOF Then

End If

Duyệt những mẫu mã tin của một Recordset

Để để mắt tới qua những mẫu mã tin của một Recordphối, bạn có thể dùng một trong những nhị kết cấu lệnh sau đây:

rst.MoveFirst

Do While Not rst.EOF

rst.MoveNext

Loop Hay là

For i=1 to rst.RecordCount

rst.AbsolutePostion=i

Next

Thêm một mẫu mã tin

Cú pháp được sử dụng là:

.AddNew

Đọan chương trình sau đây đang minch họa phương pháp thêm một mẫu mã tin vào Recordset

On Error Goto Err_Msg

rst.AddNew

Exit Sub

Err_Msg:

Msgbox "Lỗi thêm dữ liệu" Xóa mẫu mã tin

Cú pháp nhằm xóa mẫu tin vào một Recordphối là:

.Delete

"Xóa mẫu mã tin hiện tại hành

Tuy nhiên nên lưu ý là sau khi xóa mẫu tin thì chủng loại tin hiện nay hành sẽ không có giá trị. Vì vậy, sau khoản thời gian xóa, chúng ta yêu cầu dịch rời mẫu tin hiện tại hành thanh lịch mẫu tin sau nhằm update lại mẫu tin hiện nay hành của Recordset. Đọan lịch trình dưới đây sẽ minh họa xử lý xóa mẫu mã tin hiện tại hành của một Recordmix.

Private Sub cmdDelete_Click()"Xử lý nút ít xóa

On Error Goto lớn Err_Msg

rst.Delete

rst.MoveNext

If rst.EOF And Not rst.BOF Then

rst.MoveLast

End If

Exit Sub

Err_Msg:

Msgbox "Lỗi xóa mẫu tin"

End Sub

Cập nhật dữ liệu

Để đánh dấu hồ hết biến đổi của chủng loại tin hiện hành trong một Recordmix họ sử dụng lệnh theo cú pháp nlỗi sau:

Ngược lại, nếu như không mong mỏi lưu các biến đổi bọn họ tiến hành lệnh

.CancelUpdate Làm tươi tài liệu trong Recordset

Để làm cho tươi dữ liệu của bộ chủng loại tin Recordphối chúng ta cũng có thể thực hiện cú pháp sau:

Sắp xếp, thanh lọc dữ liệu

Để thu xếp dữ liệu tất cả vào một bộ mẫu tin chúng ta gán quý giá cho trực thuộc tính Sort theo cú pháp sau:

.Sort = " ,

Ví dụ mẫu lệnh dưới đây đã thu xếp tài liệu của bộ mẫu mã tin rst theo thiết bị từ cột TENNV (thương hiệu nhân viên) tăng vọt và tiếp nối là NGAYSINH giảm dần dần.

Rst.Sort = "TENNV, NGAYSINH DESC

Trường đúng theo không phải bố trí tài liệu nữa, bọn họ gán chuỗi trống rỗng đến thuộc tính Sort của Recordphối

Rst.Sort=""

Nếu hy vọng lọc dữ liệu của cục mẫu tin theo một ĐK nào đó, chúng ta có thể cần sử dụng nằm trong tính Filter theo cú pháp sau:

.Filter = ""

khi không muốn lọc nữa, chúng ta gán đến ở trong tính này trị hằng adFilterNone hay chuỗi trống rỗng.

Crúc ý: Sau Khi gán trực thuộc tính Filter, chỉ các chủng loại tin thỏa mãn nhu cầu biểu thức lọc bắt đầu được hiển thị, vị trí hiện hành được dịch rời cho mẫu tin trước tiên của group hiển thị. Sau Lúc quăng quật lọc, địa chỉ cũng được di chuyển về địa điểm đầu trong list những mẫu mã tin new. Có thể lọc theo không ít điều kiện và những ĐK nối kết cùng nhau bởi AND, OR...hoàn toàn có thể áp dụng các ký trường đoản cú đại diện (*,?) Tìm kiếm

Để tìm tìm chủng loại tin thỏa một điều kiện nào kia vào cỗ mẫu tin Recordset chúng ta cũng có thể áp dụng cách làm Find theo cú pháp sau:

.Find = sCondition, , ,

• sCondition: là chuỗi chứa ĐK buộc phải search. Chuỗi này là 1 trong những ĐK đơn có dạng:

• Các tóan tử hay được sử dụng là =,>,=, cùng Like. Giá trị trong điều kiện tìm rất có thể là một chuỗi ký trường đoản cú được đặt vào cặp lốt nháy 1-1 "", một số lượng hay như là một quý hiếm ngày nằm trong lòng nhị ký kết từ # #.

nRecordSkip: là 1 giá trị tùy chọn chỉ ra rằng số mẫu tin sẽ tiến hành bỏ lỡ trước khi ban đầu việc tìm kiếm. Tsi mê số này thường được dùng làm kiếm tìm tiếp theo sau điều kiện cũ sau khi vẫn search thấy một chủng loại tin thỏa điều kiện.

nDirection: là tđắm đuối số chỉ ra phía search. Mặc nhiên, tsi số này sẽ có được trị là một trong những tuyệt adSearchForWard (tìm kiếm theo phía tới). khi nên tìm theo hướng ngược lại, chúng ta cũng có thể sử dụng quý hiếm -1 tuyệt adSearchBackWard.

startPos: là tmê mẩn số chỉ ra vị trí bắt đầu search. Mặc nhiên lệnh Find đã tìm kiếm từ vị trí hiện tại hành (adBookmarkCurrent). khi yêu cầu tra cứu từ đầu tốt tìm kiếm ngược từ thời điểm cuối, bọn họ nên sử dụng những hằng sau: adBookmarkFirst, adBookmarkLast.

Nếu tra cứu thấy, chủng loại tin đầu tiên vừa lòng ĐK tra cứu sẽ biến chuyển mẫu tin hiện nay hành. Ngược lại, mẫu tin hiện hành là tại phần EOF trường hợp tìm tới hoặc ở phần BOF ví như vẫn tìm theo chiều ngược.

sCondition = "NGAYLVMsgbox "Đã tìm kiếm thấy"

End IfĐối tượng Field của Recordset

Mỗi cột tài liệu vào bộ mẫu mã tin Recordset được Gọi là ngôi trường xuất xắc Field. Chúng ta thường xuyên thực hiện các trực thuộc tính sau của đối tượng người dùng Field:

DefinedSize: form size khai báo của Field trên mối cung cấp dữ liệu.

Name: tên của Field.

OriginalValue: chỉ ra quý giá của Field, trước lúc xẩy ra sự thay đổi và chưa được update.

Type: hình trạng tài liệu của Field được knhị báo bên trên nguồn tài liệu.

Value: quý giá của Field, đó là trực thuộc tính bình thản của Field. Tập vừa lòng Fields của Recordset

Khi mong tđam mê chiếu mang lại tập hợp các ngôi trường tài liệu của recordmix, chúng ta áp dụng tập họp Fields. Đọan công tác sau đây đã chăm chú qua các ngôi trường gồm vào bộ chủng loại tin rst, lấy thương hiệu với hình trạng dữ liệu của chúng chuyển vào Combobox có tên là cmbTruong với cmbKieu:

Dyên fld As ADODB.Field

For Each fld In rst.Fields

cmbTruong.AddItem fld.Name

cmbKieu.AddItem fld.Type

Next fld

cmbTruong.ListIndex=0 "Chọn mục đầu tiên

Knhị báo cùng với tự khóa WithEvents

Trong quy trình thao tác làm việc, sát bên nhu yếu khởi tạo thành một trở nên thứ hạng cỗ mẫu tin ADODB.Recordset động vào chương trình, đôi lúc họ còn cần được sử dụng các cách xử lý đổi thay cầm tương quan đến biến bộ mẫu mã tin này (ví dụ như phát triển thành gắng MoveComplete,...). Muốn nắn điều này họ bắt buộc khai báo trở nên với trường đoản cú khóa WithEvents theo cú pháp sau đây:

Dyên | Public> WithEvents rst As ADODB.Recordset

ví dụ như dưới đây đã đem tài liệu tự Access database tên budget.mdb. Database này có đựng một bảng tên Budget, tất cả bảy trường dữ liệu: Division, Department, Category, Item, Month, Budget, Actual. Ví dụ này chỉ đem những dữ liệu bao gồm trường Division = "N. America" cùng Item = "Lease".

Sub ADO_Demo()

Dlặng DBFullName As String

Dlặng Cnct As String, Src As String

Dyên Connection As ADODB.Connection

Dlặng Recordset As ADODB.Recordset

Dyên ổn Col As Integer

Cells.Clear

"tin tức băng thông của dữ liệu

DBFullName= ThisWorkbook.Path và "budget.mdb"

"Mngơi nghỉ connection

Set Connection = New ADODB.Connection

Cnct = "Provider=Microsoft.Jet.OLEDB.4.0; "

Cnct = Cnct & "Data Source=" và DBFullName và ";"

Connection.Open ConnectionString:=Cnct

"Tạo Recordset

Set Recordset = New ADODB.Recordset

With Recordset

"Lọc

Src = "SELECT * FROM Budget WHERE Item = "Lease" "

Src = Src và "và Division = "N. America""