Option Explicit
Dim MyDataObject As DataObject
Private Sub CommandButton1_Click()
Dim sqlOrg, sqlWithParams, PARAMSYMPOL, QUOTER As String
Dim params() As String
Dim i As Integer
PARAMSYMPOL = "?"
QUOTER = "'"
sqlOrg = TextBox1.Text
params = Split(TextBox2.Text, ",")
For i = 0 To UBound(params)
Dim tempParam As String
tempParam = QUOTER + LTrim(params(i)) + QUOTER
sqlOrg = Replace(sqlOrg, PARAMSYMPOL, tempParam, 1, 1)
Next i
TextBox3.Text = SQLConvert(sqlOrg) 'sqlOrg
CommandButton2_Click
End Sub
Private Sub CommandButton2_Click()
If TextBox3.Text <> "" Then
'クリップボードにコピーする
Set MyDataObject = New DataObject
MyDataObject.SetText TextBox3.Text
MyDataObject.PutInClipboard
End If
End Sub
Private Sub CommandButton3_Click()
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
End Sub
Private Sub CommandButton4_Click()
End Sub
Function SQLConvert(StrOrg)
Dim tempStrSQL As String
Dim index As Integer
Dim vbSpace As String
vbSpace = Chr(32)
' index = InStr(1, StrOrg, Chr(10), 0)
' index = InStr(1, StrOrg, Chr(13), 0)
' index = InStr(1, StrOrg, "SELECT" + vbSpace, 0)
While InStr(1, StrOrg, vbSpace + vbSpace, 0) > 0
StrOrg = Replace(StrOrg, vbSpace + vbSpace, vbSpace)
Wend
StrOrg = Replace(StrOrg, vbNewLine, "")
StrOrg = Replace(StrOrg, vbCr, "")
StrOrg = Replace(StrOrg, "SELECT" + vbSpace, vbLf + "SELECT" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "FROM" + vbSpace, vbLf + "FROM" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "WHERE" + vbSpace, vbLf + "WHERE" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "ORDER" + vbSpace + "BY" + vbSpace, vbLf + "ORDER" + vbSpace + "BY" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "UNION" + vbSpace + "ALL" + vbSpace, vbLf + "UNION" + vbSpace + "ALL")
StrOrg = Replace(StrOrg, vbSpace + "UNION" + vbSpace, vbLf + "UNION")
StrOrg = Replace(StrOrg, vbSpace + "LEFT" + vbSpace + "JOIN" + vbSpace, vbLf + "LEFT JOIN" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "LEFT" + vbSpace + "OUTER" + vbSpace + "JOIN" + vbSpace, vbLf + "LEFT OUTER JOIN" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "LEFT" + vbSpace + "JOIN" + vbSpace, vbLf + "LEFT JOIN" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "RIGHT" + vbSpace + "OUTER" + vbSpace + "JOIN" + vbSpace, vbLf + "RIGHT OUTER JOIN" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "RIGHT" + vbSpace + "JOIN" + vbSpace, vbLf + "RIGHT JOIN" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "INNER" + vbSpace + "JOIN" + vbSpace, vbLf + "INNER JOIN" + vbLf + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "ON" + vbSpace, vbLf + "ON" + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "AND" + vbSpace, vbLf + "AND" + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "OR" + vbSpace, vbLf + "OR" + vbTab)
StrOrg = Replace(StrOrg, vbSpace + "AS" + vbSpace, vbTab + vbTab + "AS" + vbTab)
'StrOrg = Replace(StrOrg, vbSpace + "WHERE" + vbSpace, vbLf + "WHERE" + vbLf + vbTab)
'StrOrg = Replace(StrOrg, "\\s*RIGHT\\s*OUTER\\s*JOIN\\s*", "\\n\\tRIGHT OUTER JOIN\\t\\t")
'StrOrg = Replace(StrOrg, "\\s*RIGHT\\s*JOIN\\s*", "\\n\\tRIGHT JOIN\\t\\t")
'StrOrg = Replace(StrOrg, "\\sAND\\s", "\\nAND\\t")
'StrOrg = Replace(StrOrg, "\\sOR\\s", "\\nOR\\t")
'StrOrg = Replace(StrOrg, "\\sAS\\s", "\\tAS\\t\\t")
StrOrg = Replace(StrOrg, vbSpace + ",", vbLf + vbTab + ",")
SQLConvert = StrOrg
End Function
分享到:
相关推荐
在IT领域,Excel VBA(Visual Basic for Applications)与SQL Server的交互是常见的数据处理技术。Excel VBA允许用户自定义Excel的功能,而通过VBA连接到SQL Server数据库,则可以实现对大量数据的高效管理和分析。...
Excel 使用 VBA 链接 SQL 全部实例 在 Excel 中使用 VBA 链接 SQL 数据库是非常常见的应用场景。通过使用 VBA,可以实现在 Excel 中执行 SQL 查询,实现数据的交互和处理。本文将详细介绍如何使用 VBA 链接 SQL ...
在Excel VBA(Visual Basic for Applications)和SQL(Structured Query Language)的结合使用中,我们可以创建高效、自动化的数据管理与应用模板。这样的模板对于处理大量数据和执行复杂的计算任务非常有用,尤其在...
### VBA+SQL 数据处理详解 #### 一、概述 在现代办公环境中,尤其是在数据分析领域,结合使用 VBA(Visual Basic for Applications)与 SQL(Structured Query Language)进行数据处理是一种非常高效的方法。VBA ...
Excel VBA SQL 语句范例 本资源摘要信息主要介绍 Excel VBA 中使用 SQL 语句进行数据处理的技巧和方法。该资源提供了两个实例,第一个实例展示了如何使用 SQL 语句从 Excel 文件中提取数据,并将结果复制到另一个...
在本文中,我们将深入探讨如何使用VBA(Visual Basic for Applications)通过ADO(ActiveX Data Objects)连接到SQL Server数据库并执行数据查询。这个过程在Excel中尤其常见,因为VBA是Excel内置的编程环境,允许...
Excel VBA+ADO+SQL 入门教程 Excel VBA+ADO+SQL 是一种强大的数据处理和分析工具,能够帮助用户快速高效地处理和分析大量数据。下面是对 Excel VBA+ADO+SQL 的详细介绍和应用。 一、认识 SQL SQL(Structured ...
本资源"VBA+SQLServer跨电脑读写数据传输.zip"提供了一个详细的方法,利用Visual Basic for Applications(VBA)和Microsoft SQL Server来实现在不同计算机之间的数据交互。这种技术能够有效地提升工作效率,确保...
首先,必须严肃脸说明的是,对于普通 Excel 使用者而言,VBA、SQL 以及以 后提及的 ADO 并不是非学不可的,非学不可的是基础操作、函数、透视表、图表…… 然而大数据时代,对于另外相当一部分表族而言,Excel 用...
### VBA连接SQL数据库的代码知识点解析 #### 一、VBA与SQL数据库连接的基本原理 在本案例中,我们探讨的是如何通过VBA(Visual Basic for Applications)来实现与SQL Server数据库的有效连接及数据查询操作。对于...
在IT领域,Excel是一款广泛应用的数据处理工具,而SQL和VBA是增强其功能的两种关键技术。Excel中的SQL(Structured Query Language)允许用户对数据进行高效检索、管理与分析,而VBA(Visual Basic for Applications...
このフローチャートは一連の段階を示しており、それぞれのステップが前後のステップと連携しながら進行する。特にアーキテクチャの分析と洗練はユースケースの分析と緊密に連携し、反復的なプロセスを通じてアーキテ...
Word VBA 连接 SQL 数据库详解 VBA(Visual Basic for Applications)是微软公司开发的一种编程语言,广泛应用于 Office 软件中,如 Word、Excel、PowerPoint 等。VBA 可以与数据库集成,实现数据交互和处理。本文...
本压缩包包含四卷关于VBA常用技巧的解析,每卷以独立的.exe可执行文件形式存在,这可能意味着它们是交互式的教程或演示程序,方便用户直接操作学习。 以下是一些关键的VBA知识点,这些内容可能会在这些资源中有所...
自定义修改:数据库地址、sa账户密码、数据库表名,表字段可自定义添加(必须和数据库表字段相同)
vba自动生成sql
非常好的Excel_VBA_SQL语句,可以利用SQL语句完成Excel中的数据检索、加、减等操作。
Excel+vba通用SQL查询输出器源码 用于对Excel表格的SQL查询,被SQL操作的Excel表格必须有表头,作为类似数据库的字段,并位于表格第一行,SHEET1名称被指定时请注意替换默认的from后的表名称。
在这个名为“VBA_SQL.rar_vba_SQL”的压缩包中,包含了一个用VBA编写的程序,其主要目的是帮助用户学习如何在VBA环境中构建和执行SQL语句。 该程序的核心文件是“构造SQL语句.mdb”,这表明它是一个Access数据库...