VB連接數(shù)據(jù)庫方式主要有兩種,一是通過ODBC接口,ODBC是windows系統(tǒng)里提供的接口,專門連接數(shù)據(jù)庫的,可以連接多種數(shù)據(jù)庫,在應(yīng)用電腦的設(shè)置ODBC,也就DSN數(shù)據(jù)源(下面說到的),連接到服務(wù)器。
創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、做網(wǎng)站、陸豐網(wǎng)絡(luò)推廣、重慶小程序開發(fā)公司、陸豐網(wǎng)絡(luò)營銷、陸豐企業(yè)策劃、陸豐品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供陸豐建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
第二種就是ADO方式,
VB使用ADO數(shù)據(jù)庫可以分為有源數(shù)據(jù)庫和無源數(shù)據(jù)庫,即是否使用了DSN數(shù)據(jù)源,如下例:
1、在連接數(shù)據(jù)庫前首先要在VB菜單中“工程”-“引用”從中選擇 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.6兩個(gè)組件,這是在連接數(shù)據(jù)前所必做的工作。
2、接下來定義ADO的連接對象,如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
第一種方法采用的是無源的數(shù)據(jù)庫連接方法
conn.ConnectionString = "Driver={sql server};server=JSZX3-11;uid=sa;pwd=;database=wzc"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名,密碼 from login where 用戶名='" Trim(Combo1.Text) "' And 密碼='" Trim(Text1.Text) "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("請重新登錄", vbExclamation)
Text1.Text = ""
Text1.SetFocus
Else
Form1.Hide
End If
rs.Close
這是第二種方法連接數(shù)據(jù)庫的方法,這一種方法是采用有源的方法與數(shù)據(jù)庫連接的方法,代碼如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DSN=login;uid=sa;pwd=;"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名 from login", conn, adOpenStatic, adLockReadOnly, adCmdText
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1
i = Trim(rs.Fields("用戶名").Value)
rs.MoveNext
Combo1.AddItem i
Next t
rs.Close
連接數(shù)據(jù)庫的方法很多很多,只要各位去勇敢的償試一下,就可以感覺數(shù)據(jù)庫的方法并不是很難,本人以前也很想做這方法的工作,只是學(xué)識(shí)不深,未能完成胸中大志,如今對這些方法的多少有一些了解,特意為那些初學(xué)者以供學(xué)習(xí)之用。
VB使用ADO數(shù)據(jù)庫可以分為有源數(shù)據(jù)庫和無源數(shù)據(jù)庫,即是否使用了DSN數(shù)據(jù)源,如下例:
1、在連接數(shù)據(jù)庫前首先要在VB菜單中“工程”-“引用”從中選擇 microsoft activeX Data objects 2.6 library和 microsoft activeX Data objects recordset 2.6兩個(gè)組件,這是在連接數(shù)據(jù)前所必做的工作。
2、接下來定義ADO的連接對象,如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
第一種方法采用的是無源的數(shù)據(jù)庫連接方法
conn.ConnectionString = "Driver={sql server};server=JSZX3-11;uid=sa;pwd=;database=wzc"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名,密碼 from login where 用戶名='" Trim(Combo1.Text) "' And 密碼='" Trim(Text1.Text) "'", conn, adOpenStatic, adLockReadOnly, adCmdText
If rs.EOF = True And rs.BOF Then
m = MsgBox("請重新登錄", vbExclamation)
Text1.Text = ""
Text1.SetFocus
Else
Form1.Hide
End If
rs.Close
這是第二種方法連接數(shù)據(jù)庫的方法,這一種方法是采用有源的方法與數(shù)據(jù)庫連接的方法,代碼如下所示:
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DSN=login;uid=sa;pwd=;"
conn.ConnectionTimeout = 30
conn.Open
rs.Open "select 用戶名 from login", conn, adOpenStatic, adLockReadOnly, adCmdText
Dim i As String
For t = 0 To Val(rs.RecordCount) - 1
i = Trim(rs.Fields("用戶名").Value)
rs.MoveNext
Combo1.AddItem i
Next t
rs.Close
連接數(shù)據(jù)庫的方法很多很多,只要各位去勇敢的償試一下,就可以感覺數(shù)據(jù)庫的方法并不是很難,本人以前也很想做這方法的工作,只是學(xué)識(shí)不深,未能完成胸中大志,如今對這些方法的多少有一些了解,特意為那些初學(xué)者以供學(xué)習(xí)之用。
在系統(tǒng)中建立ADO公共查詢模塊
Public Function ExecuteSQL(ByVal SQL _
As String, MsgString As String) _
As ADODB.Recordset '執(zhí)行SQL語句并返回Recordset對象
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
On Error GoTo ExecuteSQL_Error
sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.Open CONN
'打開連接
If InStr("INSERT,DELETE,UPDATE", _
UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) _
" 查詢成功"
Else
Set rst = New ADODB.Recordset
rst.Open Trim$(SQL), cnn, _
adOpenKeyset, _
adLockOptimistic
Set ExecuteSQL = rst
MsgString = "查詢到" rst.RecordCount _
" 條記錄 "
'獲取記錄的條數(shù)
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查詢錯(cuò)誤: " _
Err.Description
Resume ExecuteSQL_Exit
End Function
然后再應(yīng)用模塊中就可以使用
Dim txtSQL As String
Dim mrc As ADODB.Recordset
Dim MsgText As String
txtSQL = "select * from ... "
Set mrc = ExecuteSQL(txtSQL, MsgText)
查詢了
第一種方法:Format
Call openRs("SELECT TT FROM TB")
Rs.MoveNext
Text3.Text = Format(Rs.Fields("TT"), "HH:MM:SS")
第二種方法:CONVERT
Call openRs("SELECT CONVERT(VARCHAR(10),TT,108) TT FROM TB")
Rs.MoveNext
Text3.Text = Rs.Fields("TT")
這兩門課都是關(guān)于軟件開發(fā)的或者說程序開發(fā)的,在計(jì)算機(jī)專業(yè)這是
專業(yè)課,而且很重要,sql我不知你指的是sql語言還是微軟的sql
server
數(shù)據(jù)庫,我假設(shè)為前者,那么sql就是關(guān)于數(shù)據(jù)庫開發(fā)的語言,vb是傳統(tǒng)的程序開發(fā)語言,從這一點(diǎn)看,它們都是計(jì)算機(jī)開發(fā)語言,都是用來寫程序的.
只是它們面對的方向不同,很久以前的程序都很小,要處理的數(shù)據(jù)也很少,一般存到文件了里就可以了,而現(xiàn)在的程序不象以前,現(xiàn)在的程序要處理的數(shù)據(jù)十分龐大,動(dòng)不動(dòng)就幾萬至幾十萬條,這個(gè)時(shí)候,就需要把數(shù)據(jù)分類出來,由一個(gè)專門的軟件:數(shù)據(jù)庫軟件來管理,sql就是數(shù)據(jù)庫軟件里用的操作數(shù)據(jù)的語言,而vb就是開發(fā)我們通常說的程序的一們語言,與他一個(gè)層次的還有c++,java等,而sql是各個(gè)數(shù)據(jù)庫管理軟件都遵守的標(biāo)準(zhǔn)語言,不論是oracle,sqlserver,還是其他的,都能可以執(zhí)行sql語句,只是這些數(shù)據(jù)庫管理軟件sql的基礎(chǔ)上擴(kuò)充了一些功能而已,
類模塊程序有錯(cuò)誤,加上下面兩句就行:
Public Sub openconn()
If sqlconn Is Nothing = True Then
Set sqlconn = New ADODB.Connection
Set rs = New ADODB.Recordset '=================
End If
If sqlconnstate 1 Then
sqlconn.Open sconn
End If
End Sub
Public Sub closeconn()
If sqlconn.State = 1 Then
sqlconn.Close
End If
End Sub
Public Function runselectsql(ByVal ssqlstring As String) As ADODB.Recordset
Me.openconn
rs.Open ssqlstring, sqlconn, adOpenStatic, adLockReadOnly '/*這里為出現(xiàn)錯(cuò)誤91的地方*/
Set runselectsql = rs '=================
End Function