當前位置:首頁 » 數據倉庫 » vb連接access資料庫查找數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

vb連接access資料庫查找數據

發布時間: 2022-04-28 05:59:23

⑴ VB連接 ACCESS資料庫 並實現查詢功能

代碼連接access
首先 工程---引用,在可引用的引用中將microsoft activex data objects 2.8 library和microsoft activex data objects recordset 2.8 library勾選
然後定義
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
定義好後連接資料庫
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path + "/news.mdb;"
cn.Open
其中資料庫為當前路徑下的news.mdb,
打開資料庫
sql語句自己寫
rs.open sql,cn,3,1
這樣資料庫中sql語句找到的記錄都在rs中
MSFlexGrid1.Top = 950
MSFlexGrid1.CellTextStyle = flexTextInsetLight
MSFlexGrid1.Rows = 7 '設置總行數
MSFlexGrid1.Cols = 8 '設置總列數
MSFlexGrid1.GridColor = &H404040 '網格顏色
MSFlexGrid1.ForeColor = &HFFCCCC '字體顏色
MSFlexGrid1.BackColor = vbBlack
MSFlexGrid1.GridLines = 1 '設置網格線的屬性
MSFlexGrid1.GridLineWidth = 1 '設置網格線的粗細程序,默認為1
MSFlexGrid1控制項的一部分設置,自己找屬性看看其他設置

將數據寫入表格中
MSFlexGrid1.TextMatrix(0, 0) = "名稱"
MSFlexGrid1.TextMatrix(0, 1) = "最新價"
MSFlexGrid1.TextMatrix(0, 2) = "漲跌"
MSFlexGrid1.TextMatrix(0, 3) = " 成交數"
MSFlexGrid1.TextMatrix(0, 4) = "名稱"
MSFlexGrid1.TextMatrix(0, 5) = "最新價"
MSFlexGrid1.TextMatrix(0, 6) = "漲跌"
MSFlexGrid1.TextMatrix(0, 7) = "成交數"

將rs中的數據寫入表格
for i=0 to 5
MSFlexGrid1.TextMatrix(i, 1) = rs("資料庫欄位")
rs.movenext
next

⑵ VB中怎麼連接ACCESS資料庫,並且讀取表中數據

Set cn = New ADODB.Connection
sqldata="Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.mappath("F:\vb數據\DataBase\DataBase2007.mdb ")
cn.Open sqldata
Set adors = New ADODB.Recordset
adors.Open strsql, cn
MSFlexGrid1.Rows = 1
While Not adors.EOF
MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = adors.Fields(0)
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = adors.Fields(1)
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = adors.Fields(2)
adors.MoveNext
Wend

⑶ 在vb中 實現對ACCESS數據 查詢

Public Function ConnAccess() As Boolean 'Access資料庫連函數
Dim conStr As String
Dim dbName As String
dbName = App.Path & "\data.mdb" '資料庫路徑
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbName & ";Persist Security Info=False;Jet OLEDB:Database Password=123456"
Set dbConn = New ADODB.Connection '定義一個ADODB連接對象
If dbConn.State <> adStateOpen Then '判斷ADODB連接是否打開
dbConn.Open conStr '如果不是打開狀態 就打開連接
End If
ConnAccess = True
End Function

Public Function CloseAccess() As Boolean '關閉資料庫連接
If dbConn.State = adStateOpen Then
dbConn.Close: Set dbConn = Nothing
End If
End Function

Private Sub Commond1_Click()
Dim rs As ADODB.Recordset
Dim Strsql As String
Call ConnAccess
listview.Clear
Set rs = New ADODB.Recordset
Strsql = "SELECT * from company order by id desc"
rs.Open Strsql, dbConn, 1, 1
Do Until rs.EOF
listview.AddItem rs("company")
rs.MoveNext
Loop
rs.Close
Call CloseAccess
end sub

⑷ VB連接ACCESS2007資料庫,查找資料庫中的「ABC」表中。

adodb.stream.loadfromfile(path)
rs("欄位名")
=
stream.read()
rs.update
就放入附件了
至於顯示
可以跟picturebox
綁定
直接可以顯示的
如果不綁定可以先adodb.stream.
savetofile
到臨時文件里
然後
再讀取

⑸ 怎樣用VB 對access資料庫進行查詢

看界面上面DataGrid已經有數據顯示了,你的VB程序已經連上Access資料庫了,現在的問題是如何加查詢了

在ADO控制項里把數據源從表改成查詢,用Select語句代替

⑹ VB和資料庫連接好了 怎麼樣查詢Access中的數據

LS應該定義資料庫連接或者資料庫。
dim
db
as
database,rst
as
recordset
dim
sql
as
string
set
db=opendatabase("D:\LZ的資料庫.mdb")
set
rst=openrecordset("表1")
On
Error
Resume
Next
sql="select
Top
5
成績,學號,姓名
Into
Tem
from
表1
group
by
姓名
order
by
成績
desc"
db.execute
sql
data1.recordsource="select
*
from
tem"
db.close
1、應該先在資料庫里建立臨時表tem(一個欄位就夠了,反正是用來生成數據表的)。
2、應該在VB里建立datagird控制項,否則無法顯示查詢結果。
3、把資料庫源改為恰當的資料庫名稱,以及SQL語句也應該做一定的改動。

⑺ VB如何查找Access中指定數據

在窗體上放一個adodc控制項,用來連接資料庫,放一個label控制項,用來顯示信息,也可以用adodb對象來連接資料庫,代碼類似的。

Private Sub Cmdok_Click()
Adodc1.Recordset.MoveFirst
Do While Not Adodc1.Recordset.EOF
If Txtid = Adodc1.Recordset.Fields("userid") Then
If Txtpw = Format(Adodc1.Recordset.Fields("密碼")) Then
Form2.Show
Unload Me
Exit Sub
Else
Beep
Label3 = "密碼錯誤!"
Txtpw.SetFocus
Exit Sub
End If
End If
Adodc1.Recordset.MoveNext
Loop
Label3 = "用戶名不存在,請重新輸入!"
Txtid.SetFocus
End Sub

Private Sub Form_Load()
'連接資料庫代碼
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & App.Path & "\login.mdb;Jet OleDb:DataBase Password="
Adodc1.RecordSource = "select * from users"
Adodc1.Refresh

End Sub

⑻ VB怎麼連接訪問Access資料庫

使用Visual Basic作為前端開發語言,與SQL Server介面有幾種常用的方法,即:

①數據訪問對象/Jet

②為ODBC API編程

③使用SQL Server的Visual Basic庫(VBSQL)為DB庫的API編程

④RDO 遠程數據對象(RemoteData Objects)

⑤ADO 數據對象(Active Data Objects)

1、數據訪問對象/Jet

VB支持Data Access Objects(DAOs)的子集。DAO的方法雖然不是性能最好的管理客戶機—伺服器之間的對話方式,但它的確有許多優點。DAO/Jet是為了實現從VB訪問Access資料庫而開發的程序介面對象。使用DAOs訪問SQL Server的過程如下:應用程序准備好語句並送至Jet,Jet引擎(MASJT200.DLL)優化查詢,載入驅動程序管理器並與之通訊,驅動程序管理器(ODBC.DLL)通過調用驅動器(SQLSRVR.DLL)的函數,實現連接到數據源,翻譯並向SQL Server提交SQL語句且返回結果。下面是一個用DAOs訪問SQL Server的VB實例。

注釋:Form Declarations

Dim mydb As Database

Dim mydynaset As Dynaset オ

Private Sub Form_Load()

Set mydb = OpenDatabase("", False, False, "ODBC; DSN=Myserver; WSID=LCL; DATABASE = sales")

Set mydynaset = mydb CreateDynaset("Select*from Customers") オ

End Sub ァ

上述例子是以非獨占、非只讀方式打開sales資料庫,並檢索Customers表中的所有欄位。OpenDatabase函數的最後一個參數是ODBC連接字元串參數,它指明了Microsoft Access連接到SQL Server所需要知道的一些內容。其中「DSN」為數據源名,「WSID」為工作站名,「DATABASE」為所要訪問的資料庫名。

2、利用ODBC API編程

ODBC(Open Database Connectivity)的思想是訪問異種資料庫的一種可移植的方式。與數據資源對話的公用函數組裝在一個稱為驅動程序管理器(ODBC.DLL)的動態連接中。應用程序調用驅動程序管理器中的函數,而驅動程序管理器反過來通過驅動器(SQLSRVR.DLL)把它們送到伺服器中。

下面的代碼使用上面一些函數先登錄到一個伺服器資料庫,並為隨後的工作設置了語句句柄。

Global giHEnv As Long

Global giHDB As Long

Global giHStmt As Long

Dim myResult As integer

Dim myConnection As Srting

Dim myBuff As String*256

Dim myBufflen As Integer

If SQLAllocEnv(giHEnv)<>SQL_SUCCESS Then

MsgBox"Allocation couldn注釋:t happen!"

End If

If SQLAllocConnect(giHEnv,giHDB)<>SQL_SUCCESS Then

MsgBox "SQL Server couldn注釋:t connect!"

End If

myConnection="DSN=myServer;UID=LCL;PWD=;APP=ODBCTest;WSID=LCL;DATABASE=sales"

myResult=SQLDriverConnect(giHDB,Test,form1.hWnd,myConnection.len(myConnection),myBuff,256,myBufflen,SQL_DRIVER_COMPLETE_REQUIED)

myResult=SQLAllocStmt(giHDS,giHStmt)

myResult=SQLFreeStmt(giHStmt,SQL_COLSE)

rsSQL="Select * from Customers Where City = "Hunan""

myResult = SQLExecDirect(giHStmt,rsSQL,Len(rsSQL))

3、使用VBSQL對DB庫API編程

DB庫是SQL Server的本地API,SQL Server的Visual Basic庫(VBSQL)為Visual Basic程序員提供API。從一定意義上說,VBSQL是連接Visual Basic程序到SQL Server的性能最好最直接的方式。VBSQL包含以下三個文件:

VBSQL.VBX: 包含庫函數,具有訪問重要的消息和處理錯誤的能力

⑼ VB 如何查詢 access 資料庫

由於VB本身並不帶有可以訪問資料庫的類,所以我們需要引用一個包含能訪問資料庫的類來使用資料庫.這里我們採用ADODB,相比DAO和能訪 問資料庫的API來說,它比DAO更靈活,更強大;而比起API,它更簡單易用,更適合初學者.而Access資料庫比起SQL,也相對簡單了很多,且能 夠滿足中小型應用程序的需要,所以我們在使用資料庫時,選擇了Access. 就像使用文本文件來存儲數據一樣,我們需要先設計好數據結構,只不過在設計Access資料庫的結構時,我們需要用到其它的程序來進行詳細的規劃.建議採用的程序是office中的Access或VB自帶的VISDATA. 當資料庫設計好了以後,我們可以開始資料庫編程了. 首先,我們需要引用ADO.具體的方法是,在工程 -- 引用 中,找到Microsoft ActiveX Data Object *.* Library,這里的*.*是指的時ADO的版本號,一般來說,應用程序或ActiveX控制項都具有向下兼容性,所以我們盡可能選擇比較新的版本.以確 保程序在能識別舊版本Access的同時,也能識別較新版本的Access. 然後我們需要在程序中創建一個對象.就好比我們在窗體上添加一個FileBox才能看到文件名一樣,只有創建了ADO對象,我們才能夠訪問資料庫.常用的對象有兩個,Connection和Recordset. 創建這兩個對象的具體方法是: 1.在引用後,使用New關鍵字,如 Private Conn As New ADODB.Connection Private Reco As New ADODB.Recordset 2.在沒引用時,用CreateObject創建對象: Dim Conn,Reco Set Conn = CreateObject(ADODB.Connection) Set Reco = CreateObject(ADODB.Recordset) 創建了對象之後,下一步我們要做的就是打開資料庫了. 先看下面的代碼,可以成功的打開資料庫. Conn.open Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:Main.mdb 這句代碼打開了D盤中的Main.mdb這個資料庫. Connection.Open方法的第一個參數是連接代碼,它將傳遞給系統的資料庫引擎.前半部分 Provider=Microsoft.Jet.OLEDB.4.0,它表示了資料庫的類型.不同的資料庫可能會不同.後半句 Source=d:main.mdb它表示了資料庫所在的絕對路徑. 打開資料庫之後,還要打開表.假如資料庫中有一個表,表名為Users,欄位有兩個,一個為用戶名,一個為密碼.那麼看以下代碼. 1.想返回Users中,[用戶名]為去年煙花的[密碼] Recordset.open Select 密碼 From Users Where 用戶名='去年煙花',Connection,1,1 之後我們就可以把用戶輸入的密碼進行比較,看是否允許登錄. If Recordset.eof and Recordset.bof then Msgbox 用戶不存在!,16 Else If PassWord =Recordset(密碼).value then msgbox 登錄成功!,64 Else msgbox 密碼錯誤!,32 End If End If Recordset.Close 2.假設Admin已經成功登錄系統,我們想把所有的用戶名和密碼都顯示出來 Recordset.open Select * From Users,Connection,1,1 這時,表已經被打開,我們就用以下代碼把它顯示出來. Do whlie Not Recordset.eof Print 用戶名: & Recordset(用戶名).value & 密碼: & Recordset(密碼).value Recordset.MoveNext Loop Recordset.Close 由以上代碼示例可以看出,打開表時,可以只打開其中的一個欄位,也可以打開所有.第一個參數是SQL語句. Select [欄位名] From 表名 [Where 條件] 這里的條件可以省略.且欄位名也可以用*來代替所有欄位. 需要注意的是,如果你用(1)中的方法打開,那麼(2)後面顯示的代碼就不能再用在(1)中.因為(1)里並沒有打開[用戶名]欄位,所以這一句Recordset(密碼)就沒有值存在,還有可能出錯. 後面的條件,可以用=、>、<等運算符.比如 Where ID > 32.(這里假設[ID]為數字型.) 這是打開的部分.第二個很重要的部分就是查詢記錄. 資料庫它並不是把所有記錄全部放到一個變數中備用的.而是以當前記錄的形式來返回一個值.所以我們想從中找到有用的信息,就必須要對信息進行定位/篩選. 定位: 移動到下一條 Recordset.MoveNext 移動到上一條 Recordset.MovePrevious 移動到最後一條 Recordset.MoveLast 移動到第一條 Recordset.MoveFrist 移動到某一條 Recordset.Move Number 篩選: Recordset.Find 條件 如:[用方法(2)打開表之後] Private Sub Command1_Click() Recordset.Find 用戶名= & text1.text If Recordset.Eof <> True Then Msgbox 該用戶的密碼是: & Recordset(密碼).value,64 Else Msgbox 未找到該用戶的資料!,16 End If End Sub MoveNext 只有當Eof不為True時,才可用,否則發生錯誤.而MovePrevious剛是Bof不為True時.... 而只要Eof 和 Bof中有一個不為真時,也就是說只要有一條記錄時,它就可以使用. Find 方法中的條件和Open時的第一個參數中的條件表述方法是完全一致的.當在已打開的記錄集中,找不到該記錄時,Eof為True.找到則當前的值就是符合條件的記錄. 第三個部分就是添加/修改記錄. 修改記錄很簡單,先按以上的方法找到相關記錄之後,給記錄賦值就可以了. 比如:[(修改密碼)按方法(1)打開表之後] Recordset(密碼).value = 123456 Recordset.Updata 需要注意的就是,在修改完成後,要調用Updata方法,這樣修改才能生效. 而添加記錄則可以用以下代碼來實現: Recordset.addnew Recordset(用戶名).value = Admin Recordset(密碼).value = Admin Recordset.Updata 這里,先要調用Addnew方法,增加一條新記錄,然後對這個新記錄中的各欄位賦值,最後再調用Updata方法. 到這里就差不多了,最後說一下上面提到的幾個方法. Recordset.Open SQL語句,數據源,游標類型,打開方法 SQL語句不用說了,就是Select那啥的,目的就是按要求從表中返回數據 數據源就是一個打開之後的Connection對象. 填1就可以了 打開方法對應了幾個常數,具體哪幾個可以從對象瀏覽器里看。 對應數值的意義: 1 只讀 2 獨占 3 可寫 4 自已可寫,別人可讀。 Connection.open 連接代碼,伺服器用戶名,密碼。

⑽ vb中access資料庫查詢

Private Sub Command1_Click()
Dim Conn As New ADODB.Connection

Dim Rs As New ADODB.Recordset
Conn.Open connstring ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & 「資料庫的路徑和名字」 & ";Persist Security Info=True;Jet OLEDB:Database Password= & "資料庫密碼"
sql = "Select * From 「 & 」表名" & where ID=20"

Rs.Open sql, Conn, 1, 3

If NOT rs.eof then

m_date= rs("日期型欄位的名字")
m_data= rs("數值型欄位的名字")
end if
end sub