ado連接是吧, 試試這樣
sqlstr = "select N'name' from [test]"
② vba,sql與excel的關系
1,VBA (Visual Basic for Applications)是Visual Basic的一種宏語言,主要能用來擴展Windows的應用程序的功能,特別是Microsoft Office軟體,在word、powerpoint、excel裡面都可以用。
2,sql全稱是「結構化查詢語言(Structured Query Language)」,是用於訪問資料庫的語言,比如:MS SQL Server、Oracle、MySQL、foxpro,Access對sql也有一定支持,但不夠全,SQL與excel關系不大
3、excel就是微軟office套件裡面專門用於表格、統計、分析處理的軟體了
③ 財務中的SQL,ERP,VBA分別是什麼東西,有什麼作用哪個的作用更大
ERP,全稱為企業資源計劃。是企業對物料、生產計劃、庫存財務等方面進行管理的一個軟體。較有名的有國外的SAP,國產的金蝶3K和用友U8等。
SQL一般指的是SQL Server,是微軟公司的一個資料庫軟體,部分ERP則是由SQL Server作為後台資料庫支持(例如金蝶3K就是),此外還有一些是用Oracle(以前SAP是的,現在似乎用自己的資料庫了)。此外,SQL還可以指一些T-SQL語句,主要用於執行資料庫的查詢和創建等等工作。
VBA全稱為Visual Basic Application,是基於VB的一種程序語言,一般用於執行一些自定義過程,例如用Excel的錄制宏即是VBA的一種。此外,Access中也可以用它來與用戶進行一些交互作用(供用戶查詢、錄入數據等等)。
總體來說,這三個是風馬牛不相及。對於財務來說,操作ERP軟體是基礎,SQL和VBA是職業技能,用來改進工作效率的。打個不太恰當的比方,RP軟體就像Excel軟體,SQL和VBA類似於公式。
不用公式是不是就不能計算了呢?當然不是了。例如你可以通過命令進行篩選或者在狀態欄上顯示等等都可以的,甚至還可以用計算器統計好之後再填進去。只不過會公式顯然會更快些完成工作罷了。
④ 用VBA向資料庫表裡插入中文欄位是亂碼,怎麼調
首先把你的頁面設置成這個字元集:
Window--Preferences--輸入jsp,搜索--點擊jsp--在相應的字元集設置上設置成自己想要的編碼集。
如果這樣還是不行的話,說明你資料庫字元集設置有問題,這樣設置:
首先把MySQL的服務停掉 在運行窗口輸入:net stop mysql
把伺服器和客戶端的字元集改成自己想用的字元集:GB2312
具體操作為:打開mysql安裝目錄下的myini.tet;
找到default-character-set,將其改為自己想用的字元集:GB2312或是utf8等……,要注意的是這里有兩個default-character-set,用ctrl+f定位在文件最前面輸入defaul就會找到,都要改過來;
重啟MySQL伺服器,在運行窗口輸入:net start mysql
最重要的是一點是,到這里我們已經能夠解決亂碼問題了,可問題是我們依然還會出現亂碼問題,這是因為我們現在的表被創建的時候用的是默認的字元集(latin1),所以這時候我們要把表刪除,然後重建就可以了
⑤ VBA和SQL有什麼相同之處或區別
看著都是代碼,實際差別很大。我的理解(雖有偏頗):
SQL:當你用到SQL的時候,它一定是有一個數據源,該數據源可以翻譯成以記錄的形式存儲的資料庫
所以SQL就是單純的針對資料庫處理。
VBA:編程,想幹啥就幹啥。離開SQL,也可實現所有功能,但涉及資料庫查詢時,沒人用VBA,一定是調用SQL(即在宏中,會用到SQL語句)。
⑥ 數據分析里,vba和sql哪個更重要
vba是vba編程嗎?
看你是用什麼工具做分析了,如果excel做的多,vba就有用了。
如果數據都是存儲在資料庫里,sql就有用了。
感覺大數據量,一般還是資料庫的較多,所以sql更有前景和重要吧。
⑦ 求教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只能執行操作,不能返回數據,必須配合結果集使用才可取回數據。
⑧ 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
一、界面設計
各控制項名稱屬性分別為: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,SQL有何區別,學哪個比較實用
Vba是vb應用程序,sql是結構化查詢語言,看你是從事什麼工作,如果是辦公類的,那麼請學vba,如果是資料庫相關的,請學sql