You are on page 1of 10

ActiveX Data Object ADO³±º¯¡




 zˆdt¯¶$t¿°Zc
®°¦v³Zdº¦¾]Zº¿±Z]ÂÁzÀºs¯ÄZ¸ººƒÂ°À®z§ÀZ€¨¿ÂÀZ€¿º³¶¯Z³z]°Z§Àvƒzd³Z¡Ħz]
Á®Z dº¦ÂÁ®¦®ÁZºº.¿Z¶]¾Zˆc¦Ħz]¦°ĦÁvÀ$ÀÄZ¸ƒÂ°Â–]¦ºcODBCvƒÄ°¦x-¶¿ZODBC
¶ººW¦°¦¦°DAO¾€¿º³¶¯Z³z]¾v¯bŸZÂz¨¿Z¯b§zƒ®¦®¾¯°¦z£ÀZ€¿º³¶¯Z³z]°ZÀds¦°®¦°À¡±¦
±¦Á®Z dº¦Zº]¾º«Â®ººº]Jet°ºcº¯¶¿Zz]DAOvƒZ]¾¯Database Access Objectsž t¯ DAO®¦®
b§zºƒÀ¡±¦~º®ºº]Á®zºº§zd³Z¡¦°À¡Z]°Z§Â¦³Z]¶]¾Zˆc¦®º]Á®z§¶W¦°¦¶§ĦÁ®¦® ZÀƒ¦
v´³Zº¯¾˜]Z´¯¶]¾Zˆc¦ÀZ¨¯¦Â®º]zc¶dŸz„ÀODBC±¦¶§®z§¶W¦°¦¦°OLEDB¾v¯bŸZÂz¨¿Z¯
 ²¿¦z]Z´]®º]ÁvÀ$ÀÂbt°ZÀ€]OLEDB–]¦ºcZ]À®z§°Z§bƒ¦®|À³¦°SQLzÀ›–]Z´¯ÂEmail
¾º¯Activex Data Objectsž t¯ADO®z§¶W¦°¦b¦OLEDBÄZ´^¯z]¶§¦°ADObŸZÂz¨¿Z¯

 ZÀºƒ¦DAOZº]ª]Zº¤¯°®ADOvº´§¾º¯¶ººW¦°¦Z·Object¢¿z±¦¦°OLEDB©Z³Z¨¯¦¶°·ÂvƒZ]
 b¦Äzd„À]©Z³Z¨¯¦Ħ°¦®Â®°¦®Äzd°§

 ADO±¦Á®Z d¦
¶ºW¦°¦vºÀ ¯ÂÁvºƒ¶º‡Ès©°ººˆ]\«Zºº¯²¨°¯vo°®Zcb¦Ávƒ¾˜¶«Z¤¯²¿¦°®
¾cZº¯v¤¯³±ºº¯¡vºˆ£>Ⱥ˜Ÿª£¦voZ¿Âb€À³ADO¶dŸz„À©Z³Z¨¯¦nÀ‹ºc»v·²¿¦z]Z´]®ºƒ
¾zdº´§±¦Á®Z dºº¦Z¿ADODC±¦Á®Z d¦¾Â¦Á¦°®¿°¦®Á¦°®ADO±¦Á®Z d¦Ħz]®¿°¦®¦°ADO
²º¿¦°®bº¦ADO ZÀºƒ¦Â–ºº]¦ºc±¦Á®Z d¦Z¿ADODB±¦Á®Z d¦¿Â®Á¦°ÂvƒZ]¾¯ADOÁ®¦®
 ®À´§¾¯Á®Z d¦¿Â®³Â°±¦zcĦ¶ŸzoÁ®Z d¦ÀZ¨¯¦Âzd„À]»Z˜³¦ªÀ«®¶]¶«Z¤¯

 ADOZÀƒ¦
 ®°¦®®ºk¾¬‡¦ ¾ƒ¶ADO°®
 ®Â°¾¯°Z¨]¾cZ—ȏ¦¦³Z]¶]¾Zˆc¦Ħz]Connection •

 ®°¦®®ºs°®¦°¾cZ—ȏ¦¦³Z]¦¿±¦z”³®°º¯b®°º§° Recordset •

 ®Â°¾¯°Z¨]Z·Stored-ProcedureĦz]Command •


¾º¯°¦zº£À¡°®¦³Zº]¶ºº]¾Zˆc¦ÄZ·Zs¶§®°¦®Error¿Z³¶]¶—º°l¯z¿±¦¿Connection
Stored-¶º]¾«Zº°¦ÄZº·zd¯¦°Z¶º§®°¦®Parameter¿Zº³¶º]¶º—º°l¯z¿±¦º¿®ºº·Command®zÀ-

¦º¿ÄZºº·v¬ÀŸz.³ZÀ]¶§®°¦®Fields¿Z³¶]¶—º°l¯z¿±¦¿Recordset®°¦®®ºs°®¦°Z·Procedure
¶§v´d€·Properties¿Z³¶]¾³ºÀ€¨¬§Ħ°¦®Z¸³¡ÄZ·¶—º°l¯z¿±ÂZÀƒ¦²¿¦¶°·b¦b®°º§°
 v³°¦®®ºs°®¦°´¦ºs
 ²¿¦Ħz]vÀ´§¶ŸZ‹¦ÁÞÂz¶]¦°À¡Refrencev¿Z]¦vd]¦¦À€À]¾¦Â&¿Â°®ADOZ]°Z§Ħz]
±¦¶º§vºÀ´§¾º¯Áv·Zº„¯¦°RefrencesÁzºl´Projectĺºº´¯°®Refrences¶´¿|-±¦Á®Z d¦Z]°Z§
 vÀ´§§Ztd³¦¦°Microsoft Activex Data Objects¶´¿|-v¿Z]À¡À°®b€À«

 Connection¾ƒ
 ¾ƒ²¿¦vƒZ]¾¯Connection¾ƒ®¿v´¯±ZÀ³À¡¶]¾cZ—ȏ¦¦³Z]Z]°Z§°®¶§ ¾ƒ²À«Â¦
¶¯Z³z]°®Connection ¾ƒ±¦¶¨´¿¦Ħz]v´§¾¯°¦z£z]¾cZ—ȏ¦¦³Z]ÂZ°ƒ¶¯Z³z]²À]¾Zˆc¦¦¿
 ®À´§®Zl¿¦¦°À¡±¦Ħ¶³º°³v¿Z]®À´§Á®Z d¦
Dim cnn As New ADODB.Connection

Zºl´¿¦°®®ºÀ´§¾º¯°¦zº£z]Á®¦®ÁZ.¿ZZ]¦°Connection ¾ƒ¾Zˆc¦Openvd¯±¦Á®Z d¦Z]
Ħzº]¶º§ĺººp³¶]b¦ADOÁ®¦®ZÀƒ¦vo±¦‚À]Äz¿x»Z˜³¦À¡Âb¦¿±Ç¶d¨³¦¿z§¯
¾Zºh¯¦°³Â°®Openvºd¯®°ºº¯°®Zºl´¿¦°®®°¦®®ºººk¾—º´d¯ÄZ¸·¦°À¡©Z³Z¨¯¦±¦Á®Z d¦
bº€À³³Â°²¿zd¸]Z¯Â|«¶§®z§®À·¦ºsZ d§¦³Â°¦¿z§¯¶]z.¿®ÄZ¸d°€£°®Z¯¦®±®À·¦ºs
 b¦z¿±ª¨ƒ¶]Openvd¯¾¬§b«Zo
connection. Open ConnectionString,UserID,Password,Options

ConnectionString¾ººº¬§b«Zºobº¦ConnectionStringÀ¡zd¯¦°Zº²¿zd°¸º¯vºd¯²º¿¦°®
 b¦z¿±©°ºˆ]
Provider=<Provider Name> ;Data Source=<Source>

¦³Zº]¶º]¾Zˆºc¦Ħzº]zº¿±Provider Name±¦vººÀ´§¾¯°Z§2.1Z¿Â2.0¶t€³ADOZ]z-¦

 vÀ´§Á®Z d¦~€§¦¾cZ—ȏ¦
Provider=Microsoft.Jet.OLEDB.3.51

 v¿z^]°Z¨]¦°z¿±¶dƒ°vÀ´§¾¯Á®Z d¦zcÇZ]Â2.5¶t€³±¦z-¦Â
Provider=Microsoft.Jet.OLEDB.4.0

¿Zº³¶º]~º€§¦¾cZº—ȏ¦¦³Zº]¦º¿¶º]¾Zººˆc¦Ħz]ConnectionStringÀ¦º´—¶]z¿±¶dƒ°
 ®Â°¾¯°Z¨]test.mdb
Provider=Microsoft.Jet.OLEDB.3.51 ;Data Source=c:\test.mdb

 b¦z¿±¬zƒ¶]ž¬dt¯ÄZ·ProviderĦz]Provider Nameb€À«
 ¶dƒ°  Provider¿Z³
Provider=SQLOLEDB;Data Source=serverName;" Initial Catalog=databaseName; SQLServer
User ID=userName;Password=userPassword;
Provider=MSDAORA;Data Source=serverName;User ID=userName; Oracle
Password=userPassword;
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=databaseName;User Microsoft Jet
ID=userName;Password=userPassword;
Provider=MSDASQL;DSN=dsnName;UID=userName;PWD=userPassword; ODBC

 vÀ]ZÀ]MSDN°®vÀ³¦ºc¾¯¦°À¡ÄZ·zd¯¦°Z±¦¿¦v§z·Á°Z]°®zd„À]©ZÀ¿|k
 ®À´§¾¯ª°—z¿±©°ºˆ]®À´§°¦z£z]¾Zˆc¦¦¿ª^£¾Zh¯Ħz]®À·¦ºt]z-¦
Dim cnn As New ADODB.Connection
cnn.Open "Provider=Microsoft.jet.oledb.3.51;Data Source=C:\test.mdb"

 ®¿®z§°¦z£z]¾cZ—ȏ¦¦³Z]Z]¾Zˆc¦¦¿¾-®Z²À°·¶]

 Recordset ¾ƒ
¾º¯Á®Z dº¦¦³Zºº]¦¿°®ÁvƒÁzÀs¯ÄZ·Á®¦®±¦Á®Z d¦Z]b®°º§°¦¿ªÀ¨„cĦz]
À¡¾º¬§b«Zºo®ººƒ¾º¯Á®Z dºº¦Recordset ¾ƒOpenvd¯±¦b®°º§°¦¿ªÀ¨„cĦz]®ºƒ
 b¦ª¨ƒ²¿v]
Open (Source, ActiveConnection, CursorType, LockType, Options)

À¡±¦¦°©Zº—ȏ¦®ººÀ·¦ºs¾¯¶§b¦¾«Âvk¿Z³z]¦z]Sourcezd¯¦°Zb«Zo²¿zcÁ®Z°®
vºƒZ]¾º¯¾Zºº˜Ÿz‹Zo¾Zo°®¶§b¦Connection ¾ƒ¿Z³®·ActiveConnection®À´§«¦ztd¦
zd¯¦°ZºvºƒZ]¾Âvºk¦º¿¿Zº³Source¶º§¾ºd«Zo°® bºº¦Ávƒ°¦z£z]¾Zˆc¦Openvd¯¶¬Àº]
>Ⱥˆ ¯Ävº˜]‚ººt]°®®·¦°LockTypeÂCursorTypezd¯¦°Z®b¦adCmdTablez]¦z]Options
 Sourcezd¯¦°ZÂOptionszd¯¦°Zz.¿®ÄZ¸d«Zo²À´$°·Â®¦®®À·¦ºsnÀ‹ºc
 z¿±v§±¦Á®Z d¦Z]Person¿Z³¶]b¦¾«ÂvkĦ°¦®Test.mdb¶§®À´§µzŸz-¦Zl´¿¦°®
 ®¦®ªÀ¨„c¦°À¡±¦b®°º§°¦¿À¦ºc¾¯
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset

cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51 ;Data Source=c:\test.mdb"


rst.Open "Person", cnn, adOpenKeyset, adLockOptimistic, adCmdTable
.
.
.
cnn.Close
rst.Close
Set cnn = Nothing
Set rst = Nothing

¶º]¦°LockTypeÂCursorTypeÄZº·zd¯¦°Z¶º¨´¿¦¾Â¦vºÀ´§bºº£®¶d¨³®¶]¾Zh¯²¿¦°®
¿Zº°c¦±¦~º¶º¨´¿¦¿Â®®¿ººƒZ´ºƒ¡zdºº„À]Z¸³¡Z]v˜]‚t]°®ZcvÀ´§¾·®°¦v¤¯\Àczc²À°·
zº·°Zºº§²¿¦Ħz]®¿v´^]¦°Recordset®·ÂConnection®·v¿Z]b®°º§°ÄZ·Á®¦®Ä°©ZÀ¬°—
°¦zº£Nothingzº]¦z]¦°Z¸ºº³¡ZÀƒ¦²dŸ°²À]±¦±¦ÀZ´À°¦Ħz]Z¯¦v³°¦®Close¿Z³¶]Ävd¯ ¾ƒ®
 ®À·®¾¯
 v§®°¦®®ºkÂName¿Z³Z]v¬ÀŸ¦¿Test.mdb¦³Z]±¦Person¾Âvk°®¶§®À´§µzŸz-¦
vºd¯±¦vº§²º¿¦°®vºº·®¾¯°¦z£lstName¿Z³Z]ListBox¦¿°®ÂÁ®z§«¦ztd¦¦°Z¸¯Z³¿Z°cz¿±
bºº§zoRecordset°®®°º§°¦¿®ºƒ¾¯f—Z]¶§b¦ÁvƒÁ®Z d¦Recordset ¾ƒ±¦MoveNext
 ®À´§
Private Sub Form_Load()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset

cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51 ;Data Source=c:\test.mdb"


rst.Open "Person", cnn, adOpenKeyset, adLockOptimistic, adCmdTable

Do While Not rst.EOF


lstName.AddItem rst!Name
rst.MoveNext
Loop
cnn.Close
rst.Close
Set cnn = Nothing
Set rst = Nothing
End Sub

bº®°º§°¿Zºº³±¦v¬ÀŸ¦¿°¦v¤¯¶]¾zd®Ħz]b¦b®°º§°ÄZ¸d³¦z.³ZÀ]Rst.EOF
 ®À´§¾¯Á®Z d¦v¬ÀŸ¿Z³Â!b¯È—Á¦z°·¶]
MovePrevious®Â°¾º¯®°ºº§°²ººÀ«Â¦¶]¶§MoveFirstÄZ·vd¯±¦MoveNextvd¯z]ÁÂȗ
®Â°¾ºº¯z”³®°º¯®°º§°¶]Move®Â°¾¯®°º§°²¿zs¡¶]MoveLast®Â°¾¯¾¬^£®°º§°¶]¶§
 vÀ´§Á®Z d¦vÀ³¦ºc¾¯

Âv¿±Zºº€]~€§¦°®² ¬c¶#zdŸ®Ħz]¾cZ—ȏ¦¦³Z]¦¿vÀ³¦ºc¾¯Z°ƒZ·¶d€³¦®²¿¦Z]²¿z°c
ªºˆd¯¦³Zºº]²¿¦¶]¶§vÀ€¿º´]Ħ¶¯Z³z]¦À€À]¾¦Â&¿Â°®~vÀ´§®°¦Â®·¦°À¡ÄZ·Á®¦®
 À¡©Zˆt„¯¿Z³z·Ä°z]¦À¬§Z]~Âv·®ÀZ„³Z°ƒ¶]b€À«°®¦°Z¸¯Z³¶°·¦vd]¦ÂÁvƒ
v·®‚¿Z°³\Z´¯©°ºˆ]¦°

 Recordset±¦Openvd¯ÄZ·zd¯¦°Z
zd¯¦°ZºººZº¯¦®º¿¦Á®¦®nºÀ‹ºc¾ŸZº§Á±¦vº³¦¶º]Ⱥ^£¦°ActiveConnectionÂSourcezd¯¦°Zº
 ®z¿x¾¯¦°z¿±z¿®Z¤¯CursorType
¦º¿¶º§Ä®°¦ºº¯°®®±Zº¾º¯ºº¬k¶º]°¶ºŸz¦º¿©°ººˆ]¾d®°º§°adOpenForwardOnly
 b¦\Z´¯b®°º§°¸º³²¿¦ÇZ]b—zªÀ«®¶]®ºƒ¾¯‚¿Z°À°Z]¦¿Ž¤Ÿb®°º§°
vºº´§¾¯®Zl¿¦¶Ÿz®©°ºˆ]ÂÀ¦z]°Z§¶¬Àº]©¦zÀÀœcÀZ¨¯¦Z]b®°º§°¦¿adOpenKeySet
 vÀ´§¦vÀ¾zd®v³¦Ávƒ¶ŸZ‹¦z.¿®À¦z]°Z§Žºc¶§¾¿Z·®°º§°¶]vÀd€À³°®Z£Z°ƒ
¶ºŸZ‹¦Zºº¿ÂÁvƒÁ®¦®zÀÀœcÄZ·®°º§°¶§©ÂZ c²¿¦Z]b¦¾¬^£¶´¿|-¶]¶À^ƒadOpenDynamic
 v´d€·²zd®°®®·Z°ƒŽºcÀ¦z]°Z§z¿Z¶¬Àº]Ávƒ
©¦zÀºÀœc¾ºº´˜¿®º]v·¦ºsZd€¿¦©°ºˆ]®ºƒ¾¯¶dsZ¶´¿|-²¿¦Z]¶§¾d®°º§°adOpenStatic
 ®°¦v³Äzg¦b®°º§°²¿¦°®

À¡Ħzºº]¦°z¿±ÄZ·¶´¿|-vÀ³¦ºc¾¯¶§b¦LockTypezd¯¦°ZOpenvd¯°®Äv˜]zd¯¦°Z
 vÀ´§Á®Z d¦
 v·®¾°³Z°ƒ¶]¦°b®°º§°Ä°Z¨d®Á±Zk¦adLockReadOnly
 v³ºƒ¾¯ª £b®°º§°Update¿Z.´·Z·®°º§°adLockOptimistic
 v³ºƒ¾¯ª £‚¿¦z¿Â±Z›¡¿Z.´·Z·®°º§°adLockPessimistic
¾º¯ªº £¶dº®¶º°·®ºººƒ¦zk¦b®°º§°Ä°UpdateBatchvd¯¾d£ÂadLockBatchOptimistic
 ®ºƒ

 vÀ´§Á®Z d¦¦°z¿±ÄZ·¶´¿|-®·Optionszd¯¦°ZĦz]
 b¦SQL°ºd®¦¿Èh¯vƒZ]¾¯z”³®°º¯ÀZ¯zŸ²d¯Sourcezd¯¦°Z°¦v¤¯adCmdText
 vƒv·¦ºsÁv³¦®z-z]À¡ÄZ·v¬ÀŸ¶°·¶§b¦¾«Âvk¿Z³Sourcezd¯¦°Z°¦v¤¯adCmdTable

 b®°º§°±¦®°º§°»xoÂÀ®z§¶ŸZ‹¦
¾º¯¾º³¦ºs¦zŸ¦°bº®°º§°±¦AddNewvºd¯¦vºd]¦®°ººº§°À®z§¶ŸZ‹¦Ħz]¶‡Ès°º]
ª^£b¦zd¸]®À´§¾¯¾³¦ºs¦zŸ¦°Updatevd¯zs¡°®Â®À·®¾¯°¦v¤¯¦°Z·v¬ÀŸ~®À´§
 ®À·®¾Z¤d³¦®°º§°²¿zs¡¶]MoveLastvd¯±¦Á®Z d¦Z]¦°zz§Z·°Z§²¿¦¶°·±¦
rst.MoveLast
rst.AddNew
rst!strName = txtName.Text
rst!strFamily = txtFamily.Text
rst!iAge = Val(txtAge.Text)
rst.Update

 ²¿¦Ħz]®À´§ª¤d´¯z”³®°º¯®°º§°¶]¦°zz§v¿Z]¦vd]¦b®°º§°±¦®°º§°»xoĦz]
¦°bº®°º§°±¦Deletevºd¯zº”³®°ºº¯®°ººº§°¶]ÀvÀ°±¦~®À´§¾¯Á®Z d¦Z·¶¤¬o±¦°Z§
 ®À´§¾¯¾³¦ºs¦zŸ¦°Updatevd¯¦³Z]Ä°b®°º§°©¦zÀÀœc¾Z°—¦Ħz]®À´§¾¯¾³¦ºs¦zŸ
Do While Not rst.EOF
If rst!strName = "mAm" And rst!strFamily = "BlackGhost" Then
rst.Delete
rst.Update
Exit Do
End If
Loop
 SQL±¦Á®Z d¦
Á®ZººSELECT¦¿±¦Ž¤ŸZl´¿¦vÀƒZ^³À¦z.³Z¯¦ÀZc®ºsÁv¸—¶]SQLÄzÀ-®Z¿Áv´¯zƒ
®À·®ªÀ¨„c¾Âvk¦¿±¦¾]Ztd³¦ÄZ·v¬ÀŸ±¦¾d®°º§°®À·¦ºt]¶§¾³Z¯±®z§®À·¦ºsÁ®Z d¦
Ħ¶dƒ°zÀœd¯Z¿Â¶dƒ°¦¿©°ºˆ]¦°SQL°ºd®°Z§²¿¦Ħz]®À´§Á®Z d¦SQL±¦®À³¦ºc¾¯
°¦zºº£adCmdTextz]¦z]®·¦°À¡zs¡zd¯¦°Z®À´§¾¯¾Z°¦Openvd¯±¦Sourcezd¯¦°ZÀ¦º´—¶]
 ¾Zh¯À¦º´—¶]®À·®¾¯
rst.Open "SELECT strName,strFamily FROM tblPerson", cnn, adOpenKeyset, adLockOptimistic,
adCmdText
 ©°º‡²¿v]Z¿Â
Dim strSQL As String
strSQL = "SELECT strName,strFamily FROM tblPerson"
rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic, adCmdText

vº¬ÀŸ®ÄÂZºo¾dº®°º§°Z¸º«Zh¯²º¿¦bº¦°¦®°ººsz]Äzdºº„À]¾¿Z³¦ºs±¦¿Â®³Â°¶§
 v´·®¾¯ªÀ¨„cstrFamilyÂstrName
 z.¿®¾Zh¯¦¿
Dim strSQL As String
strSQL = "SELECT * FROM tblPerson WHERE Age=20
rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic, adCmdText

ªÀ¨º„cbº¦¾ZººÏÍZ¸³¡²¶§Ä®¦zŸ¦¶°·©Zˆt„¯ÄÂZo¾d®°º§°¾Zh¯²¿¦°®
 v³¦Ávƒ§Ztd³¦b®°º§°²¿¦°®*±¦Á®Z d¦Z]¾ÂvkÄZ·v¬ÀŸ¶°·¶§®¿¦Á®¦®
®°ºº¯²ººZ¯¦®¿°Â¡bv]¦°ª^£¾Zh¯©Z—ȏ¦®À·¦ºt]Ħ¶¯Z³z]°®¶§®À´§µzŸz-¦
 ®À´§¾¯ª°—z¿±¢¿z±¦®Àz]z]°Z§±¦¦°z”³
Dim strSQL As String

rst.Open strSQL, cnn, adOpenKeyset, adLockOptimistic, adCmdText



¶zºƒb°º€£°®¶ºº§Äv¬ÀŸ¶§b¦Á®º]²¿¦z]µzŸZ¸«Zh¯²¿¦°®vÀƒZ]Á®z§b£®z-¦
®ººÀ´§Á®Z d¦Ħ¶dƒ°ÄZ·v¬ÀŸ±¦®À·¦ºt]z-¦Z¯¦b¦Ä®v—¸º³±¦b¦¶dŸ°°Z¨]WHERE°®
 ®À´§Á®Z d¦z¿±ÄZ·v§±¦Â®À·v]À¡°®¾¨#º§zÀÀœcv¿Z]®·±Z]
strSQL = "SELECT * FROM tblPerson WHERE strName=' " & txtName.Text & " ' "

v¿Zºº]WHERE¶zƒb°€£°®¶§vÀ´§¶kºc¶d¨³²¿¦¶]v¿Z]SQL©¦°ºd®±¦Á®Z d¦°®
Á®Z dº¦°Zº§²º¿¦Ħzº]ÇZºº]³Â°±¦²¿¦z]Z´]vÀ´§°ºˆp¯''ÄZ¸d¯È—²À]¦°ÄÂZ€c±¦v˜]°¦v¤¯
 °¦z£¶¬‡ZŸb¯È—¦°À¡»z®®ºƒÁv¿®¾do¦°¶]¦#º§b¯È—²¿¦¶¨´¿¦Ħz]¶d^«¦®¿¦Á®z§
 vÀ·®¿Zl³¦v¿Z^³Z°ƒ¦°°Z§²¿¦¶§®¿¦Á®¦®

 ®°º§°‚¿¦z¿Â
®ºÀ·¦ºs¾º¯ÇZºo®ºº¿®z§fp]¶dƒx-‚t]°®Z·®°º§°À®z§¶ŸZ‹¦Â»xoÁ°Z]°®Z¯
ªÀ¨ºº„c¦°z”³®°º¯b®°º§°¦vd]¦b¦¾ŸZ§®°º§°‚¿¦z¿ÂĦz]®À´§¾°z]¦°®°º§°‚¿¦z¿Â
°¦vº¤¯¶º]¦°À¡ÄZº·v¬ÀŸ®°ººº§°À®z§¦vÀ±¦~®À´§ºld€kÀ¡°®¦°®°º§°~®À·®
 vÀ´§¶kºcÀ¡¢´¯¶]¶kºcÀÂv]z¿±¾Zh¯¶]®À´§Update¦°b®°º§°zs¡°®Âbv¿vk
Dim cnn As ADODB.Connection
Dim rst As New ADODB.Recordset
.
.
.
Do While Not rst.EOF
If rst!strName = txtName.Text Then
rst!Family = txtFamily.Text
rst!No = txtNo.Text
rst.Update
Exit Do
End If
rst.MoveNext
Loop
rst.Close
Set rst = Nothing

  Stored Procedure ÁvƒÁzÀs¯ÄZ¸«¦Â°
¾cZ—ȏ¦¦³Z]°®Query\«Z£°®¶§v´d€·SQL©¦°ºd®b¤À¤o°®ÁvƒÁzÀs¯ÄZ¸«¦Â°
²º¿¦®ºÀ´§¾ºº¯¦zk¦¦°¾cZ—ȏ¦¦³Z]°®®ºkº¯ÄZ·QueryZ¯³Â°²¿¦°®¾´˜¿v³¦ÁvƒÁzÀs¯
 ®°¦®b¿|¯²¿v´#Openvd¯°®SQL¶dƒ°±¦Á®Z d¦³Â°¶]b^€³³Â°
²º¿v]vººÀ´§Á®Z d¦¾cZ—ȏ¦¦³Z]®°¦|¿Â°¦|]¦±¦vÀ³¦ºc¾¯ÁvƒÁzÀs¯ÄZ¸«¦Â°²dsZĦz] a
 vÀ´§®Zl¿¦¾·Zcº§ÀZ¯±©v¯»z“¦°ÁvÀ$ÀSQL©¦°ºd®vÀ³¦ºc¾¯\Àczc
 ¶lÀd³ÂÁvƒ¦zk¦¾¬s¦®©°ºˆ]Z¸«¦Â°²¿¦¦z¿±b¦zd„À]ÁvƒÁzÀs¯ÄZ¸«¦Â°Ħzk¦b—z b
²dƒ¦x-zd¬ÀŸb¤À¤o°®¾¬^£³Â°¶§¾c°º‡°®®ºƒ¾¯Áv³¦®z-z]b®°º§°À¦º´—¶]À¡
 vƒZ]¾¯b®°º§°¦¿¾kÂzsÄ°
Z°ºƒvº§®ºlo‚·Zºº§f—Z]z¯¦²¿¦¶§¦¿zd¯¦°ZSQL©¦°ºd®±¦Á®Z d¦b«º¸¾¿Z³¦ºs c
 vƒv·¦ºs
 ®º]v·¦ºszd„À]°ZÀ€]b¦¾°¸¯°ZÀ€]z¯¦°¦|Ÿ¦¿z³¾v´¸¯z”³±¦¶§¶¯Z³z]¾¿Z³¦ºs d

ÄZÀºƒ¦±¦Z¸º³¡¦¿zd¯¦°Zºº¸º³ÂCommand¾ƒ±¦v¿Z]¾«º°˜¯ÁzÀs¯ÄZ¸«¦Â°Ħzk¦Ħz]
¦ºº¿±¦Á®Z d¦Z]¦°Command¾ƒ±¦Á®Z d¦³Â°b¦zd¸]®z§Á®Z d¦ParameterÂCommand
 vÀ´§¶kºcz¿±¾Zh¯¶]~®À·®nÀ‹ºc¾Zh¯
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset

cnn.Open "Provider=Microsoft.jet.oledb.3.51;Data source=" & App.Path & "\Site.mdb"


cmd.ActiveConnection = cnn
cmd.CommandText = "qryInDatabase"
cmd.CommandType = adCmdStoredProc
Set rst = cmd.Execute

Do While Not rst.EOF


Print rst!AddressName
rst.MoveNext
Loop
rst.Close
cnn.Close
Set rst = Nothing
Set cmd = Nothing
Set cnn = Nothing

bÀ‡ZºsExecuteÂCommandTextÂCommandType|ºl]bºZ¿º-|Àºº#¶°·¾Zh¯²¿¦°®
®¿°¦®¦°ÁvƒÁzÀs¯¾¦Â°±¦Á®Z d¦vˆ£Zl´¿¦°®¶§v´§¾¯²ÀÀ˜c¦°°ºd®¸º³CommandType
²ººÀÀ˜cÁvƒÁzÀs¯¾¦Â°±¦Á®Z d¦Ħz]¦°¾¬^£bÀ‡Zs°¦v¤¯¶¯¾d£Â¦°CommandTextbÀ‡Zs
zº”³®°ºº¯°ºdºº®Ħzk¦Ħz]Executevd¯®zÀ-°¦z£¾cZ—ȏ¦¦³Z]°®Query¿Z³z]¦z]v¿Z]®À´§
 ®Â°¾¯°Z¨]
¾ºƒ¦º¿¶º]Set°ºdº®±¦Á®Z dº¦Zºº]¶§b¦b®°º§°¾ƒ¦¿Executevd¯¾kÂzs
±¦Á®Z dº¦Ħzº]vºƒZ]¾º¯zd¯¦°ZºÀÂvº]Query¦ºº¿Ħz]¾Zh¯²¿¦®À·®¾¯b^€³b®°º§°
®À´§Á®Z d¦Parameter¾ƒ±¦v¿Z]¦¿zd¯¦°ZÄZ·Query

 Parameter¾ƒ±¦Á®Z d¦
 ®À´§¾¯¾°z]¦°Parameter¾ƒ±¦Á®Z d¦¾Zh¯¦¿Z]
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim prm As New ADODB.Parameter
Dim strCon As String

strCon = "Provider=Microsoft.Jet.Oledb.3.51;Data Source=" + App.Path + "\db1.mdb"


'Debug.Print strCon
cnn.Open strCon
cmd.ActiveConnection = cnn
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "qryFamily"
prm.Name = "Family"
prm.Type = adBSTR
prm.Value = "safdel"

cmd.Parameters.Append prm
Set rst = cmd.Execute

Do While Not rst.EOF


lstTest.AddItem rst!Name
rst.MoveNext
Loop

rst.Close
cnn.Close

 prm¾ƒ±¦NamebÀ‡Zsv´ƒZ]¾¯v¿vkPrm¾ƒ¶]¶º]z¯ÄZ¸d°€£Ž¤Ÿ¾Zh¯²¿¦°®
ValuebÀ‡Zºsvº´§¾ºº¯²ÀÀ˜c¦°v¬ÀŸ¸º³TypevƒZ]¾¯¦¿zd¯¦°Z©°ºˆ]¶§b¦Äv¬ÀŸ¿Z³
 vƒZ]¾¯z”³®°º¯zd¯¦°Z¶]¾«Z°¦°¦v¤¯
²º¿¦ Command¾ºƒ±¦Appendvºd¯±¦Á®Z dº¦Zº]prm¾ºƒ±¦¿±Ç´¦ºººs®À”´c±¦~

Command¾ººƒ±¦Executevd¯¾³¦ºs¦zŸZ]b¿Z¸³°®Â®À´§¾¯ªˆd¯Command¾ƒ¶]¦°zd¯¦°Z
 ®¿zÀ-¾¯ª¿ºpc¦°b®°º§°

 ¾cZ—ȏ¦¦³Z]°ZdsZ±¦©Z—ȏ¦À®°Â¡bv]
°®®ººkº¯¾Â¦vºk±¦¾dº€À«®ººÀ³¦ºc¾¯Connection¾ƒ±¦OpenSchemavd¯±¦Á®Z d¦Z]
 ®¿°Â¡bv]b®°º§°¦¿©°ºˆ]¦°¾cZ—ȏ¦¦³Z]¦¿
Public Function OpenSchemaX() As String
Dim Cnxn As ADODB.Connection
Dim rstSchema As ADODB.Recordset
Dim strCnxn As String
Dim strStruct As String

Set Cnxn = New ADODB.Connection


strCnxn = "Provider=Microsoft.Jet.Oledb.3.51;Data Source=" + App.Path + "\db1.mdb"
Cnxn.Open strCnxn

Set rstSchema = Cnxn.OpenSchema(adSchemaTables)

Do Until rstSchema.EOF
strStruct = strStruct + "Table name: " & rstSchema!TABLE_NAME & "Table type: " &
rstSchema!TABLE_TYPE + vbCrLf
List1.AddItem strStruct
rstSchema.MoveNext
Loop
OpenSchemaX = strStruct
rstSchema.Close
Cnxn.Close

Set rstSchema = Nothing


Set Cnxn = Nothing
End Function
Private Sub Form_Load()
Text1.Text = OpenSchemaX
End Sub

¾º¯z]Z°ºƒĦzº]¶dººƒ°¦¿©°ºˆ]¦°¾cZ—ȏ¦¦³Z]Ħ|k¦±¦¾d€À«OpenSchemaX–]Zc
¦°bºº®°º§°¦¿b®°º§°¾ƒ±¦Savevd¯±¦Á®Z d¦Z]vÀ³¦ºc¾¯Z°ƒz.¿®¶d¨³¦¿Âv³¦®z-
 vÀ´§ÁzÀs¯ª¿ZŸ°®

±¦vºÀ³¦ºc¾º¯¾º·¦ºszºº”³Ħz]®d€·Z°ƒ©¦z”³z”d´¯®À´§¾¯¿Z°cZl´À°·¦°ADOfoZ^¯
vÀ´§Á®Z d¦¿¦Á®z§z§¯¦°À¡²°®¡¶§áÈ]¾·¦ºsz”³®d€À







 ¦À€À]¾¦Â&¿Âz-®Zk Áv´€¿º³

 http://vbLog.persianblog.com ¦À€À]¾¦Â&¿ÂÄ®Zk áÈ]²°®¡

 mam_programmer@yahoo.co.uk¦À³Âzd¨«¦b€

You might also like