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

vba資料庫

發布時間: 2022-01-25 15:38:19

㈠ 如何用VBA調用資料庫中數據

首先在工具 引用 中引入ADO組件(全名叫Microsoft ActiveX Data什麼的,很好好找),然後聲明一個連接變數 conn as ADODB.Connetion用來連接資料庫,這里需要連接字元串,不知道你是什麼類型資料庫,所以連接字元串無法給出,再聲明一個數據集變數ds as ADODB. DATASET用於執行sql語句並返回結果集,得到結果集之後就可以訪問裡面的內容了

㈡ 如何用vba連接資料庫

Public Sub SynTableConfig()
Dim cnn As New ADODB.Connection, sh As Worksheet
Dim rs As New ADODB.Recordset
Dim cnnStr As String, SQL As String

'建立與SQL Server資料庫伺服器的連接
cnnStr = "Provider=SQLOLEDB;Initial Catalog=" & myDataBase & ";User ID=" & myname & ";Password=" & mypassword & ";Data Source=" & serverip
cnn.ConnectionString = cnnStr
cnn.Open
SQL = "select * from sys_table where id='123' order by 表名稱"
Set rs = cnn.Execute(SQL)
While Not rs.EOF
.............
rs.MoveNext
Wend
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub

㈢ 用vba如何使用sql

一、界面設計

各控制項名稱屬性分別為:label1 、text1 、label2、text2、commandok、cmdcancel

代碼設計如下:

'首先添加一個模塊,寫上以下通用聲明和Sub main():


Public conn As ADODB.Connection '通用(聲明)

Sub main()

Set conn = New ADODB.Connection '通用(main)

conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;" _

+ "User ID=sa;password=123;Initial Catalog=denglu;Data Source=127.0.0.1" '連接資料庫代碼

conn.Open

frmLogin.Show '首先顯示登錄界面。也可以在工程屬性中設置啟動對象為Sub main()或者frmlogin窗體

End Sub

'在Frmlogin 代碼窗口,為cmdok控制項寫以下代碼:

Private Sub cmdok_Click()

If text1.Text = "" Then

MsgBox "用戶名不能為空!", vbOKOnly + vbInformation, "友情提示"

text1.SetFocus

Exit Sub '若用戶名文本框內為空,則出現提示框

End If

If text2.Text = "" Then

MsgBox "密碼不能為空!", vbOKOnly + vbInformation, "友情提示"

text2.SetFocus

Exit Sub '若輸入密碼文本框為空,也出現提示框

End If

Dim strSQl As String

strSQl = "select * from User1 where username='" & Trim$(text1.Text) & "' and pwd='" & Trim$(text2.Text) & "' "

'書寫SQL代碼,查詢User1表中是否存在窗體中用戶輸入的信息。

Dim str As New ADODB.Recordset

Set str = New ADODB.Recordset

str.CursorLocation = adUseClient

str.Open strSQl, conn, adOpenStatic, adLockReadOnly

With str

If .State = adStateOpen Then .Close

.Open strSQl

If .EOF Then

Try_times = Try_times + 1

If Try_times >= 3 Then

MsgBox "您已連續三次輸入錯誤,系統將自動關閉", vbOKOnly + vbCritical, "警告"

Unload Me '若用戶連續輸入3次錯誤密碼,則系統關閉

Else

MsgBox "對不起,用戶名不存在或密碼錯誤 !", vbOKOnly + vbQuestion, "警告"

text1.SetFocus

text1.Text = ""

text2.Text = ""

End If

Else

Unload Me '若登錄成功,則隱藏當前窗體

Form2.Show '然後顯示Form窗體

End If

End With

End Sub

Private Sub cmdCancel_Click()

End '若單擊Cmdcel按鈕,則結束應用程序

End Sub

運行中存在的問題:

代碼中有Dim conn As adodb.connection,運行時顯示"用戶定義類型未定義"

解決方法:點擊「工程」--「引用」找到「Microsoft ActiveX Data Object 2.6」

然後就就可以正常運行了。

㈣ 資料庫vba

Sub sumjs()
Dim arr(3)' 定義一個數組長度為3 為變體型
arr(0) = "請輸入1元硬幣的枚數" '從這里三句分別給數組賦值用來作為輸入inputbox 的提示和標題
arr(1) = "請輸入5角硬幣的枚數"
arr(2) = "請輸入1角的枚數"
For i = 0 To 2' 循環讓用戶分別輸入1元 5角 1角的硬幣枚數,因為有三次固循環長度為3
arr(i) = InputBox(arr(i), arr(i)) '從新讓數組得到用戶輸入的值
Next
MsgBox "你一共有" & arr(0) & "元" & arr(2) + arr(1) * 0.5 & "角" '輸出的時候計算共有幾元幾角
End Sub
給你吧,經過調試是沒有問題 的哦

㈤ VBA 從資料庫讀取數據寫到 EXCEL

'sql完整例子
SubtestSql()
'定義連接對象
DimcnnAsNewADODB.Connection
DimrsAsNewADODB.Recordset

'定義連接字元串
DimconStrAsString
DimsqlstrAsString
'連接字元串-以下是連接MSSQL資料庫
conStr="Provider=sqloledb;"_
&"Server=192.168.1.121;"_
&"Database=DATABASENAME;Uid=admin;Pwd=admin;"
cnn.OpenconStr

sqlstr="SELECT*fromtablename"
rs.Opensqlstr,cnn
Range("a2").CopyFromRecordsetrs
rs.Close
cnn.Close
EndSub

㈥ vba sql查詢

sql一般用在多條件查詢,對資料庫讀寫等。
1. VBA如何建立sql連接
A.在VBA Project 窗口中,「工具—引用—Microsoft ActiveX Data Objects 2.0 Library」,如下圖所示

B. VBA語句
Private Sub CommandButton1_Click()
Dim cnn As ADODB.Connection』定義變數
Dim sql$, Stext$, i As Integer
Worksheets(3).Cells.Clear
Stext = IIf(TextBox1.Value = "", "*", TextBox1.Value)
Set cnn = CreateObject("adodb.connection")』生成對象
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName』打開資料庫
If TextBox1 = "" Then
sql = "select * from [sheet2$]"』sql語句
Else
sql = "select * from [sheet2$] where 姓名 like '" & TextBox1.Value & "'"
End If
Worksheets(3).[a1].CopyFromRecordset cnn.Execute(sql)』執行sql語句
cnn.Close
Set cnn = Nothing
End Sub
2. sub text()
Dim cnn As ADODB.Connection』定義變數
Dim rs as adodb.recordset
Set cnn = CreateObject("adodb.connection")』生成對象,若定義變數時為Dim cnn As New ADODB.Connection,此句可省略
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" & ThisWorkbook.FullName』打開資料庫
sql = "select * from [sheet2$] where 姓名 like '" & TextBox1.Value & "'"
rs.open sql,cnn,adOpenKeyset.adLockOptimistic』生成查詢記錄,為後面出書數據准備
Worksheets(3).[a1].CopyFromRecordset rs
end sub
________________________________________________________________________
以下根據網路整理
2 Select SQL語句
SELECT * FROM table_name WHERE column1 = xxx [AND column2 > yyy] [OR column3 <> zzz]
'*'表示全部的欄位都列出來,如果不全部列出,則可以寫欄位名稱如 學號,姓名……;WHERE 之後是接條件式,把符合條件的資料列出來,table_name如果為工作表名稱,書寫格式[工作表名$],下同。
SELECT column1,AVG(column2) FROM table_name GROUP BY column1 HAVING AVG(column2) > xxx
說明: 1.GROUP BY: 以column1 為一組計算 column2 的平均值必須和 AVG、SUM等整合性查詢的關鍵字一起使用。2.HAVING : 必須和 GROUP BY 一起使用作為整合性的限制。
復合性的查詢:SELECT * FROM table_name1 WHERE EXISTS (SELECT * FROM table_name2 WHERE conditions )
說明:1.WHERE 的 conditions 可以是另外一個的 query。2. 在此是指存在與否。
SELECT column1,columns2,...FROM table_name
說明:把table_name 的特定欄位資料全部列出來
SELECT COUNT (*) FROM table_name WHERE column_name = xxx
說明:查詢符合條件的資料共有幾筆。
1.計算出總和,所選的欄位必須是可數的數字形態。2.除此以外還有 AVG() 是計算
SELECT SUM(column1) FROM table_name
說明:平均、MAX()、MIN()計算最大最小值的整合
SELECT * FROM table_name1 WHERE column1 BETWEEN xx AND yy
說明:BETWEEN 表示 column1 的值介於 xx 和 yy 之間。
3. update SQL語句
UPDATE table_name SET column1='xxx' WHERE conditoins
說明:1.更改某個欄位設定其值為'xxx'。
2.conditions 是所要符合的條件、若沒有 WHERE 則整個 table 的那個欄位都會全部被更改。
4. deletesql語句
刪除資料: DELETE FROM table_name WHERE conditions
說明:刪除符合條件的資料。
說明:關於WHERE條件後面如果包含有日期的比較,不同資料庫有不同的表達式
5.SQL中通配符用
• "%" 表示零個或多個,
• "_"表示任何單一字元
• [charlist] 字元列中的任何單一字元
• [^charlist] [!charlist] 不在字元列中的任何單一字元
• select * from databasename where fieldname like '%XX%'
• SELECT * FROM Persons WHERE City LIKE '[AOF]%'
• 從上面的 "Persons" 表中選取居住的城市以 "A" 或 "O" 或 "F" 開頭的人
• SELECT * FROM Persons WHERE City LIKE '[!AOF]%'
• 從上面的 "Persons" 表中選取居住的城市不以 "A" 或 "O" 或 "F" 開頭的人

㈦ VBA 資料庫

很顯然,你那個SQL語句寫得有點問題,STR1 與 STR2,STR3是變數,你沒有分離出來變成了固定字串, 如下修改看看:

SQL = "select * from IAC where OPTIONNO=" &str1 & " and PARENTNO=" &str2 &" and PRODUCTNO=" &str3

㈧ 求教VBA連接SQL資料庫的詳細方法及解釋。

1、基本上所有的資料庫都有對應的寫法(有些資料庫是要裝連接驅動才能連),比如"Provider=Microsoft.Jet.OLEDB.4.0(用來連接access)或者provider =MSDASQL,而且每種資料庫也可能會有多種連接方法(Provider意即資料庫引擎),常見的有下面這些

Provider 代碼 Provider
ADSDSOObject Active Directory Services
Microsoft.Jet.OLEDB.4.0 Microsoft Jet databases
MSDAIPP.DSO.1 Microsoft Internet Publishing
MSDAORA Oracle databases
MSDAOSP Simple text files
MSDASQL Microsoft OLE DB provider for ODBC
MSDataShape Microsoft Data Shape
MSPersist Locally saved files
SQLOLEDB Microsoft SQL Server
2、參見http://www.w3school.com.cn/ado/met_conn_open.asp#connectoptionenum
3、這樣就可以對book1.xlsx中的數據使用sql語法進行操作
4、當你需要返回結果的,比如說你要查詢資料庫符合某個條件的有幾條記錄,或者說取出資料庫中符合條件的一批記錄的時候就要用數據集,單一的conn.execute只能執行操作,不能返回數據,必須配合結果集使用才可取回數據。

㈨ excel vba和 資料庫

VBA是excel自身就可以使用的,具有可視化的,有另一個叫法叫做宏。
從你的題目看是基於excel做學生成績管理系統,那就應該是基於excel,用excel本身的VBA去做,不需要用到C++,否則的話做數據存儲不是用資料庫更好,就算你不想用到mysql,sqlserver這類資料庫,你也可以用access。
如果按照我的理解,基於excel的學生成績管理系統應該是利用excel做為前台操作界面,數據存儲試用access進行存儲或是直接用excel存儲也可以。我記得之前在網上看過就是利用excel的VBA去做這種可視化系統的,完全用excel進行操作,當然用excel的vba去做這樣一個系統只能做一個小型的試驗性系統,一旦數據量過大,那個性能是難以接受的。
以上個人意見,僅供參考。

㈩ VBA操作sql資料庫

呵呵,事實上你只有18積分!:)))