我刚遇到两个问题。首先,我似乎无法从Excel中运行Access中的Make Table Query。我收到一条错误消息,指出“表格风险评级已经存在”'。必须有一种方法从Excel运行Make表查询。此外,更重要的是,我的代码似乎非常不稳定。如果我通过反复击中F8来运行它,一切正常。如果我通过按钮单击事件运行它,我会收到以下错误:'远程服务器计算机不存在或不可用'。看起来Excel正在失去与Access的通信。这只是猜测。这个东西在我的桌面上,所以我真的不认为远程机器不可用。
这是我的代码。
Sub RunQueriesInAccess()
Dim AC As Access.Application
Set AC = CreateObject("Access.Application")
strDatabasePath = ThisWorkbook.Path & "\Database1.accdb"
With AC
.OpenCurrentDatabase (strDatabasePath)
.CurrentDb.Execute "qry_RISK_RATING"
.CurrentDb.Execute "qry_Delete_ALLL"
Set DB = AC.CurrentDb
Set qry = DB.QueryDefs("qry_DATA_HIST")
qry.Parameters(0) = Worksheets("Impact Analysis New").Range("B1").Value
qry.Execute
Set qry = DB.QueryDefs("qry_LIMIT_HIST")
qry.Parameters(0) = Worksheets("Impact Analysis New").Range("B1").Value
qry.Execute
.Quit
End With
ActiveWorkbook.RefreshAll
End Sub
知道这里发生了什么吗?
谢谢!
答案 0 :(得分:1)
我要回答我所知道的事情,但不能复制模糊的不稳定。
使用 $em = $this->getEntityManager();
$rsm = new ResultSetMappingBuilder($em);
$query = $em->createNativeQuery('SELECT a1.* FROM activity a1 INNER JOIN ( SELECT id, max(execution_date) MaxPostDate, objectelementtask_id FROM activity GROUP BY objectelementtask_id ) a2 ON a1.execution_date = a2.MaxPostDate AND a1.objectelementtask_id = a2.objectelementtask_id order by a1.execution_date desc', $rsm);
$rsm->addRootEntityFromClassMetadata('AppBundle:Activity', 'a1');
$activities = $query->getResult();
,您可以执行操作查询,但无法使用.CurrentDb.Execute
或CREATE TABLE
查询覆盖表格。
但是,您可以使用SELECT ... INTO
和.DoCmd.SetWarnings False
。
如果参数化查询也在创建表格,则可以使用.DoCmd.OpenQuery
。
您在代码段中使用了大量未声明的变量。我将为你声明它们并使用后期绑定.DoCmd.SetParameter
,而不是你在那里的早期/晚期绑定组合。
Access.Application