使用VBA从SQL查询string中删除别名?

我有一个SQL查询string。 在这个string中有多个不同的数据列,全部来自同一个表。 为了简单起见,下面是一个简短的例子: SELECT 'A'.'B', 'A'.'C', 'A'.'D'其中'A'是别名。 我的问题是:是否有一种方法使用VBA采取该查询string,并删除所有别名'A'实例,只是返回数据列'B', 'C', 'D' ? 请不要完整的代码,我喜欢出发点。 我喜欢自己填写。 它有助于学习过程。

  1. 像这样在QueryTable下恢复SQL:

恢复SQL:

 Range("A1").Select 'Your query worksheet With Selection.QueryTable queryText = .CommandText End With 
  1. 然后用LEFTRIGHTINSTRRegExp对象replace别名(如果你想学习一些有用的东西,并快速使用RegExp – 正则expression式)。 如果你需要一个正则expression式的例子,让我知道在评论中。 如果你想在VBA学习正则expression式,我在这里做了一个教程 。

  2. 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等