A. 熟悉excel宏编辑和sql的请进
GetSQL = " SELECT H.BILLDATE AS 日期," _
& " M.CODE AS 代码,M.NAME AS 名称,D.C_F01 AS 长,D.C_F02 AS 宽,D.C_F05 AS 片数,BG.NAME AS 厂牌," _
& " 空列1='' ," _
& " 空列2='' ," _
& " 空列3='' ," _
& " 空列4='', " _
& " 空列5='', " _
& " D.BATCHNO AS 批号," _
& " D.QTY - COALESCE(V2.HKQTY,0) AS 重量," _
& " W.NAME AS 仓库,SS.NAME AS 存货状态," _
& " D.C_F03 AS 密度,D.C_F04 AS 单位体积," _
& " D.C_S01 AS 钢印号,D.C_S02 AS 平整率,D.C_S04 AS 厚度公差,D.C_S03 AS 加膜,D.DNOTES AS 备注,D.C_S05 AS 盘点信息 " _
列名先随意指定(必须指定列名,不能空着)。出力后自己再修改。
要是不想这么麻烦。那就提前指定。提前将5个列名拿到手。放到Name1----5中
Sql如下:
GetSQL = " SELECT H.BILLDATE AS 日期," _
& " M.CODE AS 代码,M.NAME AS 名称,D.C_F01 AS 长,D.C_F02 AS 宽,D.C_F05 AS 片数,BG.NAME AS 厂牌," _
& " '" & Name1 & "' ='' ," _
& " '" & Name2 & "' ='' ," _
& " '" & Name3 & "' ='' ," _
& " '" & Name4 & "' ='' , " _
& " '" & Name5 & "' ='' , " _
& " D.BATCHNO AS 批号," _
& " D.QTY - COALESCE(V2.HKQTY,0) AS 重量," _
& " W.NAME AS 仓库,SS.NAME AS 存货状态," _
& " D.C_F03 AS 密度,D.C_F04 AS 单位体积," _
& " D.C_S01 AS 钢印号,D.C_S02 AS 平整率,D.C_S04 AS 厚度公差,D.C_S03 AS 加膜,D.DNOTES AS 备注,D.C_S05 AS 盘点信息 " _
但是必须保证列名不能有单引号,*号等特殊符号。
B. Excel宏连接mssql 查询数据
可以做,但要时间调试,需要文档
C. ACCESS 中的 宏 是什么他跟sql相对比,宏相当于sql中的什么啊 ,宏的用途是什么
access数据库 不安全,而且数据量过小。
建议去考虑 SQL..
什么是宏
计算机科学里的宏是一种抽象,它根据一系列预定义的规则替换一定的文本模式。Excel 办公软件自动集成了“VBA”高级程序语言,用此语言编制出的程序就叫“宏”。使用“VBA”需要有一定的编程基础和耗费大量的时间,因此,绝大多数的使用者仅使用了Excel的一般制表功能,很少使用到“VBA”。 解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,使用“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。 宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力--但这常常是一回事。 计算机语言如C或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C 程序员可以获得更精巧的宏。 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。 获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。例如,一种Lisp 方言有 cond 而没有if ,就可以使用宏由前者定义后者。Lisp 语法的去部主要扩展,比如面向对象的CLOS 系统,可以由宏来定义。
宏的典型应用
加速日常编辑和格式设置 组合多个命令 使对话框中的选项更易于访问 使一系列复杂的任务自动执行
宏编程介绍
在用一种不熟悉的宏语言进行宏编程时,可以这样做,首先记录下用户想要宏完成什么,然后打开宏文件并尝试理解命令结构如何工作。也可以修改命令以调整宏。一些宏语言,比如Great Plains账务(?accounting)软件的 Dexterity 运行时引擎,不能从其它数据源(如由逗号分隔的文本文件)导入数据。这一限制可以通过用更强大的编程语言,如 VBA 来创建一个计算机程序在此弱编程语言里生成一个特别的宏来解决。例如,可以对 Microsoft Excel 宏编程从扩展样式表或文本文件中读取数据并创建 Great Plains .mac 文件,这一文件被用于将特定的数据导入 Great Plains. 需要针对每一个新的数据集合声称新的 .mac 文件。
键盘宏
键盘宏和编辑器宏分别在图形用户界面和编辑器中被交互式地使用。使用它们可以用简短的击键代替冗长的命令序列,并为重复性任务提供了一个简单的自动化形式。 程序员的文本编辑器 Emacs (“编辑宏”[Editing MACroS]的简称)是沿用这一思想的产物。事实上,大多数编辑器是由宏组成的,Emacs 最初被设计为编辑语言 TECO 的宏集,后被移植为 Lisp 的一中方言 Emacs Lisp。
宏语言
宏语言是一类编程语言,其全部或多数计算是由扩展宏完成的。宏语言并未在通用编程中广泛使用,但在文本处理程序中应用普遍。例如, C preprocessor C 预处理器 Internet Macros(iOpus) M4(如前所述,源于AT&T,捆绑于Unix) 宏定义 c程序提供的预处理功能之一。包括带参数的宏定义和不带参数的宏定义。具体是指用一个指定的标志符来进行简单的字符串替换或者进行阐述替换。形式为: #define 标志符(参数表) 字符串 宏名 在上定义中的标志符被称为“宏名”。 宏展开 在c程序编译时将宏名替换成字符串的过程称为“宏展开”。
D. 怎么样才能将EXCEL中的数据用宏导入到SQL库中
你用的什么数据库?
我以Mysql为例说下:
1.用Excel将选中的数据快儿拷贝到一个TXT文本文件中(记得把后面的空格消掉。。),假如存到“D:\data.txt”这个位置里。
2.根据要导入的数据快儿建立MySql数据库和表,然后进入命令提示符里使用命令
load
data
local
infile
'D:\data.txt'
into
table
exceltomysql
fields
terminated
by
'\t';
进行导入操作(table是你建立的表名字)
如果提示找不到D:\data.txt
你就改成D:\\data.txt
E. 利用宏和SQL将多张Excel报表的某些数值导入一张报表的指定位置的方法
编一个程序,用JET接口打开Excel多表查询生成新的报表,导出Excel
F. office2013 vba 与sql 结合的问题
VBA与SQL的结合,其实和VBS(就是ASP)差不多的,举个例子:
Set cnn = CreateObject("ADODB.Connection")
cnn.Provider = "Microsoft.Jet.OLEDB.4.0"
cnn.Open ThisWorkbook.Path & "\Access数据库\DATA.mdb"
strSQL="SELECT * FROM test"
msgbox cnn.Execute(CommandText:=strSQL).GetString
还可以GetRows方法返回数组。
希望例子对你有帮助,怎么把结果存到EXCEL表格,网上例子一大堆。
G. Excel宏操作SQL数据库
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strCn As String
Dim strSQL As String
Dim CountryCode As String
Dim CountryName As String
Dim DeleteFlg As String
Dim CreateBy As String
Dim UpdateBy As String
'strCn = "Provider=sqloledb;Server=xxxx;Database=xxxx;Uid=sa;Pwd=sa;"
strCn = strConn
'MsgBox strCn
'open connect
cn.Open strCn
'**********************************************
strSQL = "DELETE FROM xxxx"
cn.Execute strSQL
cn.Close
'get the max row number
Dim RowCount As Integer
RowCount = Sheet3.UsedRange.Rows.Count
'get the time
Dim nowtime As Date
nowtime = Now()
'MsgBox nowtime
Dim index As Integer
For index = 0 To RowCount
'get data from excel
111= Cells(index, 1).Value
2222= Cells(index, 2).Value
DeleteFlg = "0"
3333= Cells(index, 3).Value
4444= Cells(index, 4).Value
H. 我想用Excel宏编写代码来对SQL数据库进行连接和操作,请教详细的步骤或方法,重分!!!!一定加分
参考网上资料:
http://www.access-cn.com/offspace/html/32/n-532.html
一、加载ODBC宏(OFFICE2000光盘有提供)后您就可以使用该函数了。语法及示例详参《OFFICE2000帮助文档》,全篇如下:Office中国社区门户4q_Sz y0[ Z!g
连接到外部数据源并运行工作表中的查询。然后,函数 SQL.REQUEST 以数组形式返回结果,而不必运行宏。如果该函数不存在,就必须安装 Microsoft Excel 的 QDBC 加载宏(XLODBC.XLA)。Office中国社区门户(m1n:jj(alT3^
语法Office中国社区门户}}o%p&I"ev"b
SQL.REQUEST(connection_string,output_ref,driver_prompt,query_text,col_names_logical)
.I3ow{0FKh,]*S'A5V:Eq0
Connection_string 提供信息,如数据源名称、用户标识和口令等。这些信息对于连接数据源的驱动程序是必需的,同时它们必须满足驱动程序的格式要求。下表给出用于 3 个不同驱动程序的 3 个连接串的示例。
#RT"~6e7h&? M!`'J0
oT f'j%o)M0 驱动器 连接串
dBASE DSN=NWind;PWD=test
SQL Server DSN=MyServer;UID=dbayer; PWD=123;Database=Pubs
ORACLE DNS=My Oracle Data Source;DBQ=MYSER VER;UID=JohnS;PWD=Sesame
Office中国社区门户r;}??X7||
7V2\O e&{S I;mIT8N0
在试图连接到数据源之前,必须定义在 connection_string 中使用的数据源名称(DSN)。Office中国社区门户p.D9{8]k }
Z0k0X/@ Q6|#rAP~0 可以以数组或字符串的形式输入 connection_string。但如果 connection_string 超过 250 个字符,必须按数组的形式输入。
4_0M+Hb&At3^0Office中国社区门户b-Q0iI9p)Y
如果函数 SQL.REQUEST 不能使用 connection_string 访问数据源,则返回错误值 #N/A。 Output_ref 对用于存放完整的连接字符串的单元格的引用。如果在工作表中输入函数 SQL.REQUEST,可以忽略 output_ref。
当需要函数 SQL.REQUEST 返回完整的连接串时,可以使用 output_ref(此种情况下,必须在宏表中输入函数 SQL.REQUEST)。Office中国社区门户#^;a#C/b9r~&d
Office中国社区门户K$M'FCJXb
如果省略 output_ref,函数 SQL.REQUEST 不能返回完整的连接串。 Driver_prompt 指定驱动程序对话框的显示时机以及可用的选项。可以使用下表中所描述的数字来描述 driver_prompt。如果省略 driver_prompt,函数 SQL.REQUEST 默认为 2 。
2cX!c0~e5Rl&RT6U0 Office中国社区门户X9d7G _n
Driver_prompt 说明
1 一直显示驱动程序对话框。
2 只有在连接串和数据源说明提供的信息不够充分,以致不能完成连接时,才显示驱动程序对话框。所有对话框选项都可使用。
3 只有在连接串和数据源说明提供的信息不够充分,以致不能完成连接时,才显示驱动程序对话框。如果未指明对话框选项是必需的,这些选项是暗的,不能使用。
4 不显示对话框。如果连接不成功,则返回错误值。
{ |1@Pi)L0Office中国社区门户8_E8q4L9x]6X4J"_/C
Query_text 需要在数据源中执行的 SQL 语句。
如果函数 SQL.REQUEST 不能在指定的数据源中执行 query_text,则返回错误值 #N/A 。Office中国社区门户*`%S Hr+C7e6A1h3f
Office中国社区门户Eg.\*_H)yB
可以将引用连接到 query_text 上来更新查询。在下面的例子中,每次 $A$3 改变,函数 SQL.REQUEST 使用新的数值来更新查询。
"SELECT Name FROM Customers WHERE Balance > "&$A$3&"".
Microsoft Excel 将串长度限制在 255 个字符内。如果 query_text 超过此长度,请在垂直单元格区域中输入查询并使用整个区域作为 query_text。所有单元格的值连接在一起,形成完整的 SQL 语句。 Office中国社区门户 S,m/u(k]
Column_names_logical 指明是否将列名作为结果的第一行返回。如果要将列名作为结果的第一行返回,请将该参数设置为 TRUE。如果不需要将列名返回,则用 FALSE。如果省略 column_names_logical,则函数 SQL.REQUEST 不返回列名。
/q#H@B#Y:ji_0
返回值
如果此函数完成了它的所有功能,则返回查询结果数组或受查询影响的行数。Office中国社区门户WRBy h&O@Pll
Office中国社区门户)z*WnpE1J'E$?.@
如果函数 SQL.REQUEST 不能使用 connection_string 访问数据源,则返回错误值 #N/A。
3u'sr+~9~/yFTfmS0说明
函数 SQL.REQUEST 可以以数组的形式输入。如果以数组形式输入函数 SQL.REQUEST,该函数将返回一个恰好填充选定区域的数组。Office中国社区门户 cq8Xq ]NS
Office中国社区门户(^T%b7@ ]y
如果单元格区域大于结果集,函数 SQL.REQUEST 向返回的数组添加空单元格,直至增加到所需要的大小。
;Y"X;FA,kW0
+Lu"l5@?0 如果结果集大于以数组形式选定的输入区域,函数 SQL.REQUEST 返回整个数组。Office中国社区门户]/y){ Q sIX
Office中国社区门户1c#ZY8`7n$YRp&x
函数 SQL.REQUEST 参数的次序与 Visual Basic for Application 中函数 SQLRequest 的参数次序不同。
Office中国社区门户"C!pK p9O6BnlPj
示例
6c!s3F^-TzT_0
假设需要对名为 DBASE4 的 DBASE 数据库进行查询。如果在单元格中输入下列公式,将会返回查询结果数组,其中第一行是列名:Office中国社区门户B9]4[RqK_wc
SQL.REQUEST("DSN=NWind;DBQ=c:\msquery;FIL=dBASE4", c15, 2,
"Select Custmr_ID, Due_Date from Orders WHERE order_Amt>100", TRUE)二、用“数据”菜单上的“获取外部数据”-“新建数据库查询”向导获取数据库数据。用该向导取得数据后,以后该工作表的数据以后会随数据动态更新(在不移动数据源文件的前提下)。注意:请仔细设置外部数据表的属性,会有更多收获。
以上答案供参考