使用VBA从SQL查询string中删除别名?
我有一个SQL查询string。 在这个string中有多个不同的数据列,全部来自同一个表。 为了简单起见,下面是一个简短的例子: SELECT 'A'.'B', 'A'.'C', 'A'.'D'
其中'A'
是别名。 我的问题是:是否有一种方法使用VBA采取该查询string,并删除所有别名'A'
实例,只是返回数据列'B', 'C', 'D'
? 请不要完整的代码,我喜欢出发点。 我喜欢自己填写。 它有助于学习过程。
- 像这样在QueryTable下恢复SQL:
恢复SQL:
Range("A1").Select 'Your query worksheet With Selection.QueryTable queryText = .CommandText End With
-
然后用
LEFT
,RIGHT
,INSTR
或RegExp
对象replace别名(如果你想学习一些有用的东西,并快速使用RegExp
– 正则expression式)。 如果你需要一个正则expression式的例子,让我知道在评论中。 如果你想在VBA学习正则expression式,我在这里做了一个教程 。 -
replace查询并刷新QueryTable
replace并刷新查询
Range("A1").Select 'Your query worksheet With Selection.QueryTable .CommandText = queryText .Refresh BackgroundQuery:=False End With
你是从桌上直接select的吗? 直接从表中将给你的列名称,除非你在查询中执行一些function。 另一个select是:
select[A] AS columnName,[B] AS ColumnName2等