VBA访问SQLSERVER2005筛选数据库
EXCEL版本2010,
引用

Private Sub CommandButton1_Click()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set Cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
Dim connstr
Dim sql
Dim bt
Dim et
Dim bno
Dim sht As Worksheet
connstr = "Provider=sqloledb;Server=172.16.10.20\wincc;Database=KMTC;Uid=sa;Pwd=0000;" 'This Connection String must be remembered for a long period.
conn.Open connstr
bt = Range("B1").Value
et = Range("D1").Value
bno = Range("G1").Value
sql = "SELECT '" & bt & "到" & et & "' as savedate ,[Materials_Name]" & vbNewLine & _
" ,sum([Save_Weight]) as settedWeight" & vbNewLine & _
" ,sum([PV_Weight]) as realWeight" & vbNewLine & _
" FROM [KMTC].[dbo].[Save_Weight]" & vbNewLine & _
"where save_date between '" & bt & "' and '" & et & "'"
If bno <> Empty Then
sql = sql & " and [Batch_Number] = '" & bno & "'"
End If
sql = sql & "group by [Materials_Name]"
rs.Open sql, conn
i = 4
Set sht = ThisWorkbook.Worksheets("sheet3")
For j = 4 To 30
sht.Cells(j, 1) = Empty
sht.Cells(j, 2) = Empty
sht.Cells(j, 3) = Empty
sht.Cells(j, 4) = Empty
sht.Cells(j, 8) = Empty
sht.Cells(j, 9) = Empty
sht.Cells(j, 10) = Empty
Next
Do While Not rs.EOF
sht.Cells(i, 1) = rs("savedate")
sht.Cells(i, 2) = rs("Materials_Name")
sht.Cells(i, 3) = rs("settedWeight")
sht.Cells(i, 4) = rs("realWeight")
rs.MoveNext
i = i + 1
Loop
rs.Close
sql = "SELECT [Batch_Number]" & vbNewLine & _
" ,sum([Save_Weight]) as settedWeight" & vbNewLine & _
" ,sum([PV_Weight]) as realWeight" & vbNewLine & _
" FROM [KMTC].[dbo].[Save_Weight]" & vbNewLine & _
"where save_date between '" & bt & "' and '" & et & "'" & vbNewLine & _
"group by [Batch_Number]"
rs.Open sql, conn
i = 4
Do While Not rs.EOF
sht.Cells(i, 8) = rs("Batch_Number")
sht.Cells(i, 9) = rs("settedWeight")
sht.Cells(i, 10) = rs("realWeight")
rs.MoveNext
i = i + 1
Loop
rs.Close
conn.Close
End Sub
好吧,还有一些excel的数据有效性的设定。
先记什么多。
VBA访问SQLSERVER2005筛选数据库的更多相关文章
- Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...
- SQLServer2005+附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
SQLServer2005+ 附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 我们在用Sql SQLServer2005+附加数据库文件时弹出错误信息如下图的处理办法: 方案一: ...
- [经使用有效]Sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法
sqlserver2005附加数据库时出错提示操作系统错误5(拒绝访问)错误5120的解决办法 最近几天从网上找了几个asp.net的登录案例想要研究研究代码,结果在用 Sql Server2005附 ...
- Excel中使用VBA访问Access数据库
VBA访问Access数据库 1. 通用自动化语言VBA VBA(Visual Basic For Application)是一种通用自动化语言,它可以使Excel中的常用操作自动化,还可以创建自定义 ...
- .NET跨平台之旅:升级至ASP.NET 5 RC1,Linux上访问SQL Server数据库
今天微软正式发布了ASP.NET 5 RC1(详见Announcing ASP.NET 5 Release Candidate 1),.NET跨平台迈出了关键一步. 紧跟这次RC1的发布,我们成功地将 ...
- 如何让用户只能访问特定的数据库(MSSQL)
背景 客户的SQL Server实例上有多个厂商的数据库,每个数据库由各自的进行厂进行商维护, 为了限定不同厂商的维护人员只能访问自己的数据库,现需要给各个厂商限定权限,让他们登录SQL Server ...
- 11月7日下午PHP----PDO访问方式操作数据库
MySQLI是专门访问MySQL数据库的,不能访问其它数据库.PDO可以访问多种的数据库,它把操作类合并在一起,做成一个数据访问抽象层,这个抽象层就是PDO,根据类操作对应的数据库.mysqli是一个 ...
- 通过 SQL Server 视图访问另一个数据库服务器表的方法
今天项目经理跑过来对我大吼大叫说什么之前安排让我做一大堆接口为什么没做,我直接火了,之前明明没有这个事情…… 不过事情还要解决,好在两个项目都是用的sqlserver,可以通过跨数据库视图来快速解决问 ...
- Sliverlight linq中的数组筛选数据库中的数据
首先 什么是linq呢 ? LINQ即Language Integrated Query(语言集成查询),LINQ是集成到C#和Visual Basic.NET这些语言中用于提供查询数据能力的一个新特 ...
随机推荐
- 基于Raft构建弹性伸缩的存储系统的一些实践
基于Raft构建弹性伸缩的存储系统的一些实践 原创 2016-07-18 黄东旭 聊聊架构 最近几年来,越来越多的文章介绍了 Raft 或者 Paxos 这样的分布式一致性算法,但主要集中在算法细节和 ...
- Golang学习 - reflect 包
------------------------------------------------------------ 在 reflect 包中,主要通过两个函数 TypeOf() 和 ValueO ...
- Linux 的启动流程
转载:http://www.ruanyifeng.com/blog/2013/08/linux_boot_process.html 更多文档参见:http://pan.baidu.com/s/1hqo ...
- LeetCode37 Sudoku Solver
题目: Write a program to solve a Sudoku puzzle by filling the empty cells. Empty cells are indicated b ...
- OC 实现的几个排序算法
和在VC++6.0里相比 在OC里面实现 不算困难 可是我用惯了C/C++呢 快速排序,冒泡排序,直接插入排序和折半插入排序,希尔排序,堆排序,直接选择排序 /******************** ...
- Android 高级UI设计笔记11:Gallery(画廊控件)之Gallery基本使用
1. 这里要向大家介绍Android控件Gallery(画廊控件) Gallery控件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Galler ...
- 【Shell脚本学习16】Shell if else语句
if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句: if ... else ... fi 语句: if ... ...
- Android小项目之九 两种上下文的区别
------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...
- iOS菜鸟总结1
我从第一次接触OC,我觉得想要学好就必须有提前的知识的储备(比如c,java).这样就可更好了解面向对象的这一思想.学起来就不是很吃力了,本来OC就是比较难学的语言.工欲善其事,必先利其器,Xcode ...
- 重构25-Introduce Design By Contract checks(契约式设计)
契约式设计(DBC,Design By Contract)定义了方法应该包含输入和输出验证.因此,可以确保所有的工作都是基于可用的数据,并且所有的行为都是可预料的.否则,将返回异常或错误并在方法中进行 ...