要連接SQL資料庫有兩種方法用ADODC或ADO。
方法一: (ADODC)
首先須引用Projects-Components-Microsoft ADO Data Controls 6.0 (OLEDB)。
之後在表單設置ADODC控制項。然後Form_Load()輸入以下代碼:
Private Sub Form_Load()
ADODC1.ConnectionString = "Provider=SQLOLEDB;Password=密碼;Persist Security Info=False;User ID=用戶名;Initial Catalog=資料庫名;Data Source=伺服器名"
ADODC1.CommandType = adCmdText
ADODC1.RecordSource = "select * from 表格名稱"
ADODC1.Refresh
End Sub
方法二: (ADO)
首先須引用Projects-References-Microsoft Active X Data Objects 2.0 Library。
注意以下兩段須寫在程式最上面(Gerenal一般)中。
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim SQL As String
然後在Form_Load()輸入以下代碼:
Private Sub Form_Load()
cn.ConnectionString = "Provider=SQLOLEDB;Password=密碼;Persist Security Info=False;User ID=用戶名;Initial Catalog=資料庫名;Data Source=伺服器名"
cn.Open
If rs.State = adStateOpen Then rs.Close
rs.CursorLocation = adUseClient
SQL = "select * from 表格名"
rs.Open Trim$(SQL), cn, adOpenKeyset, adLockPessimistic
End Sub
B. vb如何連接sql資料庫,求源碼
Dim conn As New ADODB.Connection '創建一個 Connection 實例,在這里使用New等於將Dim和Set合並為一段代碼執行
Dim rs As ADODB.Recordset '創建一個 Recordset 實例,不使用New 是因為,經常需要重復使用Set,因此沒必要在這里使用
Dim CnStr As String, Sql As String '創建兩個字元串變數分別存放兩個集合的SQL語句代碼段
1、裝載資料庫(不屬於Recordset集合)
=============
Dim FileNamw$, DbIp$, DbName$, DbUser$, DbPw$
'以上5個字元串變數分別表示文件路徑和文件名、資料庫地址、資料庫名、數據操作員用戶名、操作員密碼
FileName = App.Path & "\'資料庫名'"
DbIp = "資料庫地址"
DbName = "資料庫名"
DbUser = "數據操作員用戶名"
DbPw = "操作員密碼"
'以上變數根據資料庫類型的不同而不同,有可能只需要1至兩個變數
'1)連接Access資料庫:
'-------------------
CnStr = "PROVIDER=microsoft.jet.oledb.3.51;persist security info =false;data source=" & FileName & ";Jet OLEDB:Database Password=" & DbPw
'2)連接Oracle資料庫:
'-------------------
CnStr = "PROVIDER=MSDAORA.1;Password=" & DbPw & ";User ID=" & DbUser & ";Data Source=" & FileName & ";Persist Security Info=True"
'其中:
'PASSWORD: 密碼
'User ID: 用戶號
'Data Source: 資料庫名
'Persist Security Info:
'Provider:
'3)連接VF的DBF庫:
'----------------
CnStr = "PROVIDER=MSDASQL.1;Persist Security Info=False;Driver={Microsoft Visual FoxPro Driver};UID=" & DbUser & ";SourceDB=" & FileName &
";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;"
'4)連接SQL的資料庫
'------------------
CnStr = "PROVIDER=MSDataShape;Data PROVIDER=MSDASQL;uid=" & DbUser & ";pwd=" & DbPw & ";DRIVER=SQL Server;DATABASE=" & DbName & ";WSID=GQSOFT;SERVER=" &
DbIP
'也可以使用這段簡易代碼 CnStr = "Provider=SQLOLEDB;Data Source=" & DbIp & ";DATABASE=" & DbName & ";UID=" & DbUser & ";pwd=" & DbPw
Conn.Open cnstr '使用 Connection 集合的 Open 方法 與資料庫建立連接
2、Recordset集合的常用方法
==========================
'1)打開一個表
'------------
Sql = "select * from 表名" 'SQL查詢語句
Set rs = New ADODB.Recordset '新建一個實例
rs.Open Sql, conn '使用 Open 方法打開資料庫中的一個表
'注意,這種打開方式只能使用 rs.MoveNext (即,向後移動行坐標)而不能像其他方向,並且不能修改數據內容
'
'rs.Open Sql, conn,1 '雖然只加了個「1」,但這種方法可以向任何方向移動行坐標。
'
'以下參數代表了這個可選值的含義
'0 = adOpenForwardOnly (默認值)打開僅向前類型游標。
'1 = adOpenKeyset 打開鍵集類型游標。
'2 = adOpenDynamic 打開動態類型游標。
'3 = adOpenStatic 打開靜態類型游標。
'
'雖然使用以上方法可以可以實現行坐標(游標)的任意移動,但是仍然無法寫入數據。因此需要進一步的對Open 方法進行完善
'rs.Open Sql, conn, 1, 3 '後面的3是確定讀寫許可權的
'以下參數代表了這個可選值的含義
'1 = adLockReadOnly (默認值)只讀 — 不能改變數據。
'2 = adLockPessimistic 保守式鎖定(逐個) — 在編輯時立即鎖定數據源的記錄。
'3 = adLockOptimistic 開放式鎖定(逐個) — 只在調用 Update 方法時才鎖定記錄。
'4 = adLockBatchOptimistic 開放式批更新 — 用於批更新模式(與立即更新模式相對)。
'
'2)讀寫數據
'----------
'增加一行記錄並對新記錄的內容進行修改並保存可以如下寫法
rs.AddNew '增加一行記錄
rs("...")="..." '數據讀寫操作
...
rs.UpDate '保存寫入資料,如果使用只讀許可權,則不能使用這個方法
rs.Close '這個方法用來關閉你所代開的表,如果不使用這個方法也可以,但是資料庫仍然認為你在對標進行鎖定,可造成資料庫負擔過重
2、對數據進行篩選和排序
=======================
Sql = "select * from 表名" 'SQL查詢語句
'以上為打開一個表的所有內容
Sql = "select top 50 * from 表名" 'SQL查詢語句
'以上為只打開前50行的記錄
Sql = "select top 50 列名1,列名2,列名5 from 表名" 'SQL查詢語句
'以上為只打開前50行的記錄,並且只打開第1、2、5列數據
Sql = "select * from 表名 where 列名1='" & 欄位 & "'" 'SQL查詢語句
'以上為一個簡單的篩選,表示打開的內容必須符合[列名1='" & 欄位 & "'"]的內容
'需要注意的是,資料庫列的類型必須匹配,比如字元串類型需要以單引號括起
'而數字類型則不能用單引號括起
'另外SQL語句還支持通配符,例如 列名1 like '%" & 欄位 & "%'" 表示包含[欄位]
'在表達式中的匹配
'? _(下劃線) 任何單一字元
'* or % 零個或多個字元
'# 任何單一數字(0 — 9)
'[charlist] 任何在字元表中的單一字元
'[!charlist] 任何不在字元表中的單一字元
'註:根據資料庫的不同?、_和*、%的應用有所差別,比如SQL只使用% 和 _ 分別代表多個字元和單一字元
Sql = "select * from 表名 where 列名1='" & 欄位 & "' ORDER BY 欄位1 ASC" '對查詢結果進行升序排列
Sql = "select * from 表名 where 列名1='" & 欄位 & "' ORDER BY 欄位1 DESC" '對查詢結果進行降序排列
Sql = "select * from 表名 where 列名1='" & 欄位 & "' ORDER BY 欄位1 DESC, ORDER BY 欄位2 DESC" '對查詢結果進行多維降序排列(速度奇慢,不推薦使用)
3、Recordset集合的常用屬性方法
==============================
rs.BOF '是否游標在最上邊
rs.EOF '是否游標在最下邊
rs.RecordCount '記錄集的行數(如果使用像前類型的游標,可能返回不準確)
rs.AddNew '新建一行記錄
rs.Update '保存當前行被修改的記錄
rs.Delete '刪除當前行
rs.Close '關閉記錄集
4、Fields集合的一些屬性的解釋
=============================
'以下為簡寫,正常情況需要rs.Fileds.。。。但是Fields屬於Recordset的一個默認集合,因此可以省略
rs() '括弧內可以是列名也可以是列的序號例如:rs("姓名")、rs(3) 都是是可以的
rs(3).Name '返回列名
rs(3).Type '返回列的類型
rs(3).Value '返回當前行的值
rs.Fields.Count '返回列數
C. VB如何連接SQL資料庫
一個用VB連接SQL資料庫連接的模塊2007年01月22日 星期一 下午 05:29下面是一個連接資料庫的模塊,大家可以使用它來連接SQL資料庫,使用起來比ADO控制項還簡單:
代碼如下:
Public rsNew As ADODB.Recordset
Public CnNew As ADODB.Connection
Public addFlag As Boolean
'連接資料庫
Public Function OpenCn() As Boolean
Dim Mag As String
On Error GoTo strErrMag
Set CnNew = New ADODB.Connection
CnNew.ConnectionTimeout = 25
CnNew.Provider = "sqloledb"
CnNew.Properties("data source").value = "" 'SQL伺服器的名
CnNew.Properties("initial catalog").value = "pubs"'庫名
CnNew.Properties("integrated security").value = "SSPI"'登陸類型
'con.Properties("user id").value = "sa"
'con.Properties("password").value = "wwww"
CnNew.Open
OpenCn = True
addFlag = True
Exit Function
strErrMag:
Mag = "資料庫末連接"
Call MsgBox(Mag, vbOKCancel, "錯誤:資料庫連接")
addFlag = False
End
End Function
Public Sub Clocn()
'閉關資料庫
On Error Resume Next
If CnNew.State <> adStateClosed Then CnNew.Close
Set CnNew = Nothing
End Sub
Public Function OpenRs(ByVal strSql As String) As Boolean
'連接資料庫記錄集
Dim Mag As String
Dim rpy As Boolean
On Error GoTo strErrMag
Set rsNew = New ADODB.Recordset
If addFlag = False Then rpy = OpenCn
With rsNew
.ActiveConnection = CnNew
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open strSql
End With
addFlag = True
OpenRs = True
Exit Function
strErrMag:
Mag = "資料庫數據集末連接"
Call MsgBox(Mag, vbOKOnly, "錯誤:資料庫連接")
OpenRs = False
End
End Function
Public Sub cloRs()
'閉關數據集
On Error Resume Next
If rsNew.State <> adStateClosed Then rsNew.Close
Set rsNew = Nothing
End Sub
只要在你的標准模塊中加入該代碼,你就可以使用其中的函數來連接數據源了。
D. 用vb怎麼連接SQL資料庫
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\你資料庫的名稱"
Dim strquery As String
strquery = "select * from Table_Users where 用戶名='" & Trim(Text1.Text) & "'and 密碼= '" & Trim(Text2.Text) & "'"
Adodc1.RecordSource = strquery
Adodc1.Refresh
這樣應該就ok了 希望能幫到你
E. 如何用vb鏈接sql的資料庫
這段代碼寫在模塊中,可以連接一個資料庫
Public
DBConnct
As
New
ADODB.Connection
'連接資料庫
Public
Function
Connt()
As
Boolean
'資料庫連接函數
Dim
splstr
As
String
'App.Path
&
"\db\123.mdb為資料庫路徑
splstr
=
"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source="
& App.Path
&
"\db\123.mdb"
& ";Persist
Security
Info=False"
DBConnct.Open
splstr
'連接資料庫
Connt
=
True
End
Function
F. vb怎麼連接sql
在窗體上添加adodc控制項
滑鼠右鍵-adodc屬性-在通用選項卡里,點生成,選for
SQL
Server驅動程序-下一步-連接選項卡里
1.輸入伺服器名稱,2.使用Windows
NT
集成安全設置。3.選擇一個資料庫
點測試連接,看看是否成功。按確定
點記錄源選項卡,命令類型選8,命令文本(SQL)寫:select
*
from
table1
確定,就連接到SQL資料庫的表table1了。
Private
Sub
Command1_Click()
If
Not
Adodc1.Recordset.EOF
Then
Text1.Text
=
Adodc1.Recordset.Fields("line1")
End
If
End
Sub
G. vb如何連接SQL資料庫
第一步:定義資料庫連接對象
Public Cnn As New ADODB.Connection
第二步:給連接對象字元串賦值,這個格式是固定的
Cnn.ConnectionString = "Driver={SQLServer};Server=sql資料庫伺服器地址及名稱;Database=資料庫名稱;Uid=資料庫用戶名;Pwd=資料庫登錄密碼
舉例:
Cnn.ConnectionString = "Driver={SQL Server};Server=win\DB;Database=dbN;Uid=sa;Pwd=sa"
第三步:打開資料庫
Cnn.Open
三大部就連起來了,下來就可以直接用ADO訪問記錄集對象了。
上邊講的三大部簡單實用,當讓你要想熟練實用資料庫,手頭必須有本書哦!
H. VB連接SQL
問題補充:
「我想知道相對地址連接~~是SQL
移到的機子上不裝SQL那怎麼辦??」
1、SQL資料庫連接必須是伺服器,不用地址,因為在安裝SQL
Server
2000
後,你的資料庫地址已經確定;
2、在一般情況下不安裝是不可以的,對於Access資料庫現在的操作系統有其驅動,而沒有SQL的,除非使用網路,例如區域網。
SQL
SERVER
2000
資料庫代碼比較簡單,無非資料庫連接語句不同,其他和Access資料庫沒有大的區別。
如果「程序要移動到其他機子上」,移動到的機子上必須同樣安裝SQL
SERVER
2000
資料庫,而且伺服器名稱、資料庫名稱必須和原伺服器名稱、資料庫名稱相同,如果有資料庫密碼,必須保持一致。
下面是SQL資料庫連接代碼,請參考:
Public
conn
As
New
ADODB.Connection
conn.ConnectionString
=
"driver={SQL
Server};server=伺服器名稱;uid=sa;pwd=密碼;database=資料庫名稱"
conn.Open