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

vbasql做一个两层架构

发布时间: 2022-08-07 22:53:30

Ⅰ 请问怎样用vba实现:内嵌sql并从数据库查询到数据并放入指定的单元格内请高手赐教或给个例子~ 小妹谢过

你大概弄错了,数据库不存在什么最后空行,你指的多半是插入操作,如果是的话,执行sql语句(假定你的第三列字段名为name)
str="insert into wdgj21(name) values('" & Ar & "')"
(怎么执行不用偶说吧)当然如果你用addnew之类来替代上面这个也是可以的。

取出数据跟这个是差不多的,假定你的数据库中的name2列中包括这个ar的内容,你想取出那一行的name的值,
str="select top 1 name from wdgj21 where name2 like '%" & Ar & "%'"
用ADODB.Recordset打开就可以取到结果了。

Ⅱ 我想用VB+SQL数据库做一个具有查询功能的小软件,代码怎么写了...

提供一个思路,具体有很多东西自己去探索学习吧:
在VB编程环境中新建VB工程,添加引用:
Microsoft ActiveX Data Objects 2.8 Library;
Microsoft ActiveX Data Objects Recordset 2.8 Library;
再添加Excel的对象库,具体名称自己看看就知道了。
用ADO.connection连接SQL数据库,用ADO.recordset读写数据库,从数据库中返回的号码、姓名、部门、数量等信息在ADO.recordset对象的记录集中,看看recordset对象的属性和方法就知道怎样操作这些数据了,将这些数据赋给Excel对象有关单元格,调用Excel保存方法实现excel导出数据。

Ⅲ sql语句放在vba里需要什么框架

VBA里使用SQL语句,不仅要需要遵循SQL的语法规则。在VBA中构造不光要遵循SQL的语法规则,还必须要遵循VBA的语法规则。
于是就会多出来好些如连接符(&)、双引号(")等符号,很多初学者就是被这些符号搞晕了。下面就简单讲一下如何通过拆分法来理解VBA中动态SQL语句的构造。
在查询的时候虽然我们可以将查询条件绑定到窗体控件,如下面的示例:
Select
* FROM 订单表 Where客户名称
=Forms!客户查询窗体!客户名称输入框但这样只能适用于比较简单的查询,随着条件复杂度的增加,SQL语句的构造难度也会直线上升,更重要的是这样
的SQL语句很难理解,就算最终做出来了,一旦过了一段时间需要修改的话,就非常麻烦。
于是在VBA中使用变量构造动态的
SQL语句就成了一种理想的选择。我们来看一个例子,比如我们要通过在窗体上的三个文本框(txt客户名称、txt开始日期、txt结束日期)内输入相应
的条件值,来构造一个查询订单表中指定客户在某个时间段内销售记录的SQL语句,在VBA中的代码如下:
strSQL="
Select * FROM 订单表 Where 客户名称='www.gzlij.com" & Me.txt客户名称 & "'
AND 销售日期 Between #" & Me.txt开始日期 & "# And #" & Me.txt结束日期
& "#"
上面的的语句该如何理解呢?这里通过替换法来进行拆分,我们先假设文本框的值分别是:
txt开始日期=2010-5-1
txt结束日期=2010-5-31
txt客户名称=东南实业
根据上面的条件,我们需要得到的SQL语句应该是:
Select * FROM 订单表 Where 客户名称="东南实业" AND 销售日期 Between #2010-5-1# And #2010-5-31#
这里的由于要在VBA中构造,而双引号(")是VBA中的字符串界定符,所以我们需要把它改成单引号(')来符合VBA的语法规则,那么SQL语句就成了:
Select * FROM 订单表 Where 客户名称='东南实业' AND 销售日期 Between #2010-5-1# And #2010-5-31#
(当然我们也可以根据VBA的语法来用两个双引号,这样VBA编译器就会把这两个连续的双引号识别为一个双引号字符,而不是字符串界定符,不过这样相对来说更加复杂和麻烦一些,还有一些其它原因这里就不细说了。)
我们再把里面的条件值换回变量,由于条件需要用变量代替,所以我们这里把上面的SQL语句拆分成如下的多个片段:
Select * FROM 订单表 Where 客户名称='东南实业' AND 销售日期 Between #2010-5-1# And #2010-5-31#
然后把其中的条件值换成变量,就成了:
Select * FROM 订单表 Where 客户名称='Me.txt客户名称' AND 销售日期 Between #Me.txt开始日期# And #Me.txt结束日期#
接下来再把其中不是变量的片段两头加上双引号,使其符合VBA中的字符串语法:
"Select * FROM 订单表 Where 客户名称='"Me.txt客户名称"' AND 销售日期 Between #"Me.txt开始日期"# And #"Me.txt结束日期"#"
最后我们再用连接符(&)把这些拆分处理后得到的片段连接组合成一个字符串(注意,使用连接符组合多个字符串或变量时,连接符两边要有空格),就得到了我们需要的VBA中的动态SQL语句的写法:
"Select
* FROM 订单表 Where 客户名称='" & Me.txt客户名称 & "' AND 销售日期 Between #"
& Me.txt开始日期 & "# And #" & Me.txt结束日期 & "#"

Ⅳ 如何用vba将2个单元格的sql语句相连

用连字符 & 或者直接单元格值相加,不过这都简单,就是得注意两个sql语句之间的空格和符号

Ⅳ Excel VBA SQL如何多表联合查询

select abcg.型号,阶段,生产日期,生产数,不良数,销售日期,销售数量 from (select abc.型号,阶段,日期,生产日期,生产数,不良数 from (select a.型号,阶段,日期 from [表A$] a left join (select 型号,生产日期 as 日期 from [表B$] UNION select 型号,销售日期 as 日期 from [表C$]) bc on a.型号=bc.型号) abc left join (select 型号,生产日期,SUM(生产数) AS 生产数,SUM(不良数) AS 不良数 from [表B$] group by 型号,生产日期) bg ON abc.型号=bg.型号 and abc.日期=bg.生产日期) abcg left join (select 型号,销售日期,SUM(销售数量) AS 销售数量 from [表C$] group by 型号,销售日期) cg on abcg.型号=cg.型号 and abcg.日期=cg.销售日期 order by abc.型号,abc.日期

Ⅵ 用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”

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

Ⅶ 如何在excel里用vba编程制作一个简单的数据库

Set conn = New ADODB.Connection

Set rs = New ADODB.Recordset
conn.Open "Provider=Microsoft.Jet.Oledb.4.0;Persist Security Info = False;extended properties='Excel 8.0;HDR=YES;IMEX=0';Data Source=“各科成绩表.xls"
If conn.State = adStateOpen Then
sSql = "select * from [sheet1$] where 姓名 like '" & str1 & "' and 成绩 like '" & str2 & "'
rs.Open sSql, conn, 1, 1
If rs.BOF And rs.EOF Then
。。。。。。
首先用VBA控件画好窗体,连接成绩表,再执行相应的操作。。。

Ⅷ 如何写一个系统的架构,又如何用程序来实现呢,用的是C和SQL

我们用的是ERP管理的, 他是根据零件的工艺路线走的

Ⅸ 求教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构造SQL的where子句,实现任意多条件组合查询

根据索引的顺序与数据表的物理顺序是否相同,可以把索引分成两种类型:聚簇索引与非聚簇索引。SQL Server 通过使用聚集索引键搜索聚集索引来检索数据行,而聚集索引键存储在非聚集索引的叶行内。 我是外行,只知道这一点点·······必须有待数据高...