当前位置:首页 » 编程语言 » pqsqlvba
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

pqsqlvba

发布时间: 2022-08-20 05:18:49

A. vba如何提取sql里面的数据

会用vb数据库连接,你在vba种直接使用vb的方式即可
可参考下面的代码
------------------
Public Function ConnectDB()
cs = "Provider=Microsoft.jet.OLEDB.4.0;Data Source="
'conn.ConnectionString = CS & app.Path & "\Score5.mdb"
conn.ConnectionString = cs & "F:\Scview\score4.mdb"
'cs="Provider=SQLOLEDB;Server=JF705;Database=mytest;Uid=sa;pwd=lmlm"
'cs="Provider=SQLOLEDB;Server=JF705\ETSERVER;Database=mytest;Uid=sa;pwd=lmlm"
'cs="Provider=SQLOLEDB;Server=JF705;Database=mytest;Uid=sa1;pwd=lmlm"
'conn.ConnectionString=cs
conn.Open
'response.write conn
'response.end

End Function

B. 用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”

然后就就可以正常运行了。

C. 引用另外表格,提示 #REF!路径也设置好了。被引用的表格不打开就错误,打开就正常。不用vba能处理吗

Excel跨工作簿(也就是题主所说的另外的表格吧——但另外的表格在Excel中说法是不准确的。Excel中不同的文件称为不同的工作簿,一个工作簿中可以有很多不同的工作表,一般说不同的表格多指一个工作簿中不同的工作表。而一个工作表可以有多个不同的数据区域,有时不同的数据区域也可以为不同的表格——所以应该区分好工作簿、工作表、表格的概念)用公式引用数据时,一般情况下是需要打开数据源工作簿,公式才能得出正确结果的。要达到不打开数据源工作簿引用数据而不出不错的方法,一般可用SQL、Power Query、VBA,这些都是Excel本身带有的数据工具或辅助程序,还有其他第三方程也可以,如VB、c语言等。不用语言,建议研究下SQL或Power Query(简称PQ),相对来说,SQL语言最简洁,无论是数据引用,还是数据汇总处理等,就一个语句达到目的,但不能有丝毫的差错,要掌握好得花些时间。而PQ的初级应用可以解决大多数的数据引用和基本处理,只要掌握基本的方法,几乎是傻瓜式的,参照相关的教程,一步步照着点鼠标即可完成。

D. VBA,SQL有何区别,学哪个比较实用

Vba是vb应用程序,sql是结构化查询语言,看你是从事什么工作,如果是办公类的,那么请学vba,如果是数据库相关的,请学sql

E. VBA和SQL有什么相同之处或区别

看着都是代码,实际差别很大。我的理解(虽有偏颇):
SQL:当你用到SQL的时候,它一定是有一个数据源,该数据源可以翻译成以记录的形式存储的数据库
所以SQL就是单纯的针对数据库处理。
VBA:编程,想干啥就干啥。离开SQL,也可实现所有功能,但涉及数据库查询时,没人用VBA,一定是调用SQL(即在宏中,会用到SQL语句)。

F. 财务中的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类似于公式。
不用公式是不是就不能计算了呢?当然不是了。例如你可以通过命令进行筛选或者在状态栏上显示等等都可以的,甚至还可以用计算器统计好之后再填进去。只不过会公式显然会更快些完成工作罢了。

G. 求教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只能执行操作,不能返回数据,必须配合结果集使用才可取回数据。

H. VBA 怎样调用sql的语句

Dim cn As New ADODB.Connection '定义数据链接对象 ,保存连接数据库信息;请先添加ADO引用
Dim rs As New ADODB.Recordset '定义记录集对象,保存数据表
Dim strCn As String, strSQL As String '字符串变量
Dim i As Integer, j As Integer, sht As Worksheet

strCn = "Provider=SQLOLEDB.1;Password=psw;Persist Security Info=True;User ID=userid;Initial Catalog=hrlink ;Data Source=127.0.0.1"
strSQL = "select * from table"

cn.Open strCn
rs.Open strSQL, cn

I. 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" 开头的人

J. Vba和SQL和c语言的区别

VBA属于VB的子类,其主要目的是基于应用程序自动化的编程语言,用来扩展应用程式功能,特别是Office这类办公软件。当然因为它比较简单也容易上手,现在有一些软件也支持,比如CAD,coredrow等等。

SQL为结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;是高级的非过程化编程语言。关系数据库操作语言的一种。

C语言为计算机程序设计语言,说到C语言,可能不是一言两语可以说清它的影响和作用。它是一种通用的、过程式的编程语言,基本上系统和应用软件等等底层的开发都会基于C语言开发。而且移植性很高,像C++、Objective-C、Java、C#都这些语言都受到C语言的重大影响,俗称泛C类语言!

所以这三种语言针对的领域各不相同,其中C语言倾向底层开发,像操作系统,芯片等等,而SQL应用领域主要用于高效管理庞大的数据;VBA则主要应用于软件自动化,使软件的功能得到扩展,完成一些软件自身无法完成的工作,或者利用VBA解决一些靠手工根本无法完成的工作。