當前位置:首頁 » 編程語言 » accesssqlvba

accesssqlvba

發布時間: 2025-03-31 09:30:15

① access 刪除記錄vba代碼

刪除/插入 (delete/insert) 利用的是CurrentDb.Execute(stsql)。
代碼如下:
[plain] view plain
'拼寫刪除指定PR Number的SQL文
stSql = "DELETE FROM [000_BASTS] WHERE [PR NR] = '" & pr_nr & "'"
'執行SQL文
CurrentDb.Execute (stSql)

② access2013 VBA中怎樣運行sql語句

sql在vba里的運用比較專業需要認真的學習研究一下,給你詳細一點的資料和一個實例

你自己學著模擬練習一下

一、簡單的查詢


1、建立查詢

數據選項卡—現有連接—瀏覽更多或者按快捷鍵Alt+D+D+D

選擇要查詢的Excel文件和文件中的的工作表,就可以將相應工作表的數據取過來。表現形式可以是表,也可以是數據透視表等。

2、SQL查詢語句

如果是挑選部分列數據,就需要用SQL語句(取所有數據也可以用SQL語句)。


建立查詢時,選擇工作表後不要點擊「確定」按鈕,而是先點擊「屬性」按鈕,彈出窗口中選擇「定義」選項卡,在命令文本框中輸入SQL查詢語句(原來的工作表名稱,表示所有數據,可以認為是取所有數據的SQL的一種特殊寫法):

Select欄位列表from[工作表名$]

--其中欄位列表就是需要選擇的欄位,數據源用工作表名稱加「$「再用中括弧括起來,例如:

selectprov_name,city_name,xs_mc,xs_codefrom[Sheet1$]

select*from[Sheet1$]--取所有數據


偶然發現,欄位名不能用no,估計是保留字,如需要,用中括弧括起來,例如:

select[no],prov_name,city_name,xs_mc,xs_codefrom[Sheet1$]

欄位名中含有特殊字元的也要用中括弧括起來,如/?空格等

Excel查詢沒有偽表概念,對於表達式的計算直接用select既可,例如

Select23+45--返回68

Selectdate()--返回當前日期

3、修改查詢語句


方法:點擊右鍵—彈出菜單—表格—編輯查詢

通過修改SQL語句可以變更所取的數據,也可以將建立查詢時的簡單SQL語句改成復雜的SQL語句。


欄位名更換:如果想換個欄位名,用「as新欄位名」既可,例如:

selectprov_nameas省,city_nameas城市,xs_mcas縣市,xs_codeas編碼from[Sheet1$]


非正常表格:數據區域(含欄位名)不在第一行

需要在工作表名稱後面指定數據范圍,例如:

selectprov_name,city_name,xs_mc,xs_codefrom[Sheet1$B2:G2000]

或者,將數據塊定義為一個名稱,假設定義為mydata,SQL語句如下:

selectprov_name,city_name,xs_mc,xs_codefrommydata

注意:使用名稱時沒有$符號,也沒有方括弧了。

數據更新:數據源發生變化,需要更新數據,方法:點擊右鍵—彈出菜單—刷新

意外:如果打開Excel文件後彈出不是選擇工作表的窗口而是一個「數據連接屬性」窗口,可以關閉這個窗口,然後將Excel應用極小化再極大化方式消除,或者在彈出選擇文件的窗口時,退回上一級文件夾,刪除那個Queries文件夾,就行了。

二、復雜的查詢

1、多表聯合

相同結構的多個表合並到一起,用union連接SQL語句,例如:

Select*from[財務部$]unionallSelect*from[市場部$]

Union是去重復的,即相同的記錄保留一個(類似distinct),Unionall則是直接相加兩個結果,不去重復。


增加一個部門欄位可以將查詢結果中的區分開來,以便知道數據來自哪個表。Union的三個一致,即:欄位的數量、類型和順序。例如:

Select「財務部」as部門,*from[財務部$]unionallSelect「市場部」as部門,*from[市場部$]

多表聯合查詢

Select*from[部門$]bm,[員工$]ygwherebm.部門編碼=yg.部門編碼跨工作簿查詢果數據不僅來自不同的工作表,還來自不同的文件,一樣可以用union聯合,例如:

Select「分公司1」as公司,「財務部」as部門,*from[F:SQL之Excel應用分公司1.xlsx].[財務部$]unionall

Select「分公司1」as公司,「市場部」as部門,*from[F:SQL之Excel應用分公司1.xlsx].[市場部$]unionall

Select「分公司2」as公司,「財務部」as部門,*from[F:SQL之Excel應用分公司2.xlsx].[財務部$]unionall

Select「分公司2」as公司,「市場部」as部門,*from[F:SQL之Excel應用分公司2.xlsx].[市場部$]

因為SQL中已經指定了文件名和表名,所以建立連接時連接誰並不重要,這種情況下,建立連接的時候就連接自己,然後再改寫SQL語句。

SubUsingSQL()
DimSqlAsString
DimjAsInteger
DimrAsInteger
DimCnnAsADODB.Connection
DimrsAsADODB.Recordset
WithSheet1
.Cells.Clear
SetCnn=NewADODB.Connection
WithCnn
.Provider="Microsoft.ACE.OLEDB.12.0"
.ConnectionString="ExtendedProperties=Excel12.0;"_
&"DataSource="&ThisWorkbook.Path&"數據.xlsx"
.Open
EndWith
Setrs=NewADODB.Recordset
Sql="Select*From[Sheet1$]"
rs.OpenSql,Cnn,adOpenKeyset,adLockOptimistic
Forj=0Tors.Fields.Count-1
.Cells(1,j+1)=rs.Fields(j).Name
Next
r=.Cells(.Rows.Count,1).End(xlUp).Row
.Range("A"&r+1).CopyFromRecordsetrs
EndWith
rs.Close
Cnn.Close
Setrs=Nothing
SetCnn=Nothing
EndSub

③ 如何用vba代碼將access資料庫連接求代碼

在VBA中編寫代碼以連接Access資料庫並將Excel表格中的數據寫入資料庫,可以通過以下步驟實現。本示例中,程序會讀取Excel中的數據,並將它們插入到Access資料庫中的特定表中。

首先,定義變數並初始化數據路徑。代碼如下:

Sub FYMXDL()
Dim XQID As Integer
Dim JZID As Integer
Dim FYID As Integer
Dim FBXZ As String
Dim DW As String
Dim SARR(1 To 31) As Double
Dim rst As New ADODB.Recordset
mYpath = ThisWorkbook.Path & "\jzfydata.accdb"
Set cONn = CreateObject("ADODB.Connection")
cONn.ConnectionString = "Provider=Microsoft.Ace.OleDB.12.0;Data Source=" & mYpath
cONn.ConnectionString = cONn.ConnectionString & ";Jet OLEDB:Database "
cONn.Open
XQID = Cells(3, 2).Value
JZID = Cells(3, 5).Value

接下來,執行刪除操作,清空特定小區和建築的費用明細:

Const kshh = 7
hh = kshh
Do While Cells(hh, 3).Value > 0
FYID = Cells(hh, 3).Value
FBXZ = Cells(hh, 11).Text
For i = 1 To 31
SARR(i) = Round(Cells(hh, 13 + i - 1).Value, 2)
Next i
Sql = "delete from fymxb where 小區ID=" & XQID & " AND 建築ID = " & JZID
cONn.Execute Sql

最後,插入數據到資料庫:

Sql = "INSERT INTO fymxb(小區ID,建築ID,費用ID,分包性質,工作量,單價合計_中標,人工費_中標, 主材費_中標, 輔材費_中標, 機械費_中標, 管理費_中標, 利潤_中標,規費_中標,稅金_中標,合價_中標,單價合計_標准成本,人工費_標准成本,主材費_標准成本,輔材費_標准成本,機械費_標准成本,管理費_標准成本,利潤_標准成本,規費_標准成本,稅金_標准成本,合價_標准成本,單價合計_實際成本,人工費_實際成本,主材費_實際成本,輔材費_實際成本,機械費_實際成本,管理費_實際成本,利潤_實際成本,規費_實際成本,稅金_實際成本,合價_實際成本) VALUES (" & XQID & ", " & JZID & ", " & FYID & ", '" & FBXZ & "'"
For i = 1 To 31
Sql = Sql & "," & SARR(i)
Next i
Sql = Sql & " )"
cONn.Execute Sql
hh = hh + 1
Loop
End Sub

通過以上代碼,可以輕松地將Excel表格中的數據寫入到Access資料庫中,從而實現數據的管理和維護。

④ Access VBA中如何使用 SQL 語句。

提問里是一段打開ADO記錄集對象的代碼,並不完整且含有錯誤。下面提供一個完整一點的代碼供參考:

PrivateSubCommand111_Click()
DimsqlAsString
'聲明ADO記錄集對象
DimrsAsADODB.Recordset
Setrs=NewADODB.Recordset'實例化記錄集對象
'拼寫SQL語句並賦值到變數
sql="SELECTDGZY.usenameFROMDGZYWHERE(((DGZY.usename)Like'張三'));"
'打開記錄集
rs.Opensql,CurrentProject.Connection,adOpenKeyset,adLockOptimistic
'利用記錄集對象進行所需的有關操作,代碼略
EndSub

⑤ ACCESS 如何用VBA語言向資料庫中填加數據

在ACCESS資料庫中,使用VBA(Visual Basic for Applications)語言向資料庫中添加數據,是一個較為便捷的操作。以下是具體步驟與方法。

首先,打開ACCESS資料庫,確保已連接VBA環境。

其次,使用`sql`語句創建一個插入操作。其格式為`"INSERT INTO 表名(欄位1,欄位2) VALUES('欄位1內容','欄位2內容')"`。這里,`表名`代表你要插入數據的表名,`欄位1,欄位2`代表表中你想要插入數據的欄位名,`'欄位1內容','欄位2內容'`代表你想要插入的數據內容。例如,如果你想要在`Customers`表中插入一個客戶數據,其`CustomerName`欄位為`John Doe`,`Address`欄位為`123 Main St`,則`sql`語句應為`"INSERT INTO Customers(CustomerName,Address) VALUES('John Doe','123 Main St')"`。

接著,使用VBA代碼來執行`sql`語句。代碼示例如下:

vba
Dim sql As String
sql = "INSERT INTO Customers(CustomerName,Address) VALUES('John Doe','123 Main St')"
DoCmd.RunSQL sql

這段代碼中,`sql`變數存儲了`sql`語句,然後通過`DoCmd.RunSQL`方法執行插入操作。執行後,新的數據會被添加到`Customers`表中。

如果需要在插入數據前先進行數據驗證或者在插入數據後執行額外操作,你可以在`sql`語句中添加適當的邏輯代碼。例如,確保`CustomerName`欄位不為空或包含特殊字元,或者在成功插入數據後更新其他相關表的信息。

最後,使用`rst.addnew`方法向當前記錄集(RecordSet)添加新行,`rst.update`方法更新資料庫。這些操作通常在使用`Data宏`或`Query宏`時執行。具體示例代碼如下:

vba
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Customers")
rst.AddNew
rst!CustomerName = "John Doe"
rst!Address = "123 Main St"
rst.Update

在這段代碼中,`rst`是一個指向`Customers`表的`Recordset`對象。`AddNew`方法用於在記錄集的末尾添加一行新記錄,然後使用對應的欄位名和值更新數據。最後,`Update`方法用於將新記錄保存到資料庫中。

通過上述步驟,你就能在ACCESS資料庫中使用VBA語言向資料庫中添加數據,實現數據的高效管理與操作。

熱點內容
電腦文件加密軟體免費 發布:2025-04-02 03:02:51 瀏覽:797
php圖片管理 發布:2025-04-02 03:01:11 瀏覽:257
然後弄編程 發布:2025-04-02 02:54:06 瀏覽:104
解壓室俱樂部 發布:2025-04-02 02:47:04 瀏覽:273
安卓哪裡下載文豪野犬 發布:2025-04-02 02:45:04 瀏覽:783
優酷安卓怎麼免廣告 發布:2025-04-02 02:30:07 瀏覽:827
安卓系統怎麼把繁體字改為簡體字 發布:2025-04-02 02:14:39 瀏覽:317
androidpos機 發布:2025-04-02 01:40:54 瀏覽:368
電腦上建立ftp伺服器 發布:2025-04-02 01:26:59 瀏覽:721
wingftp破解 發布:2025-04-02 01:01:28 瀏覽:113