我是一名数据顾问,负责迁移我发送到系统的数据。我编写的代码将我的表的内容与已放入oracle的内容进行比较,作为额外的测试。由于它们彼此之间的关系,这些表格有点复杂。但基本上这是我的问题:
当我想要匹配两个字段值并且该字段不存在时,我得到一个参数弹出框。我想只在该字段存在的情况下运行代码。
我尝试了很多东西,在它周围包含一个if语句但是我总是得到参数框,任何人都可以帮助必须有一个更简单的方法来做到这一点!
If Not DoCmd.OpenQuery("SELECT TOP 1" & MatchValues!FieldName & " FROM " &
MatchValues!ORACLE_TABLE_NAME) Then
MsgBox "moomins"
' strSQL = "INSERT INTO 002_TableValueErrors(ORACLE_TABLE_NAME,TRANSFORM_TABLE_NAME,FIELD_NAME,ORACLE_FIELD_VALUE,TRANSFORM_FIELD_VALUE) "
' strSQL = strSQL & " VALUES (" & MatchValues!ORACLE_TABLE_NAME & "," & MatchValues!TRANSFORM_TABLE_NAME & "," & MatchValues!FieldName & ",'ORACLE: NOT FOUND','ORACLE: NOT FOUND')"
End If
答案 0 :(得分:0)
如果您处理Oracle:您是否尝试通过在Oracle中查询ALL_TAB_COLUMNS
来检查该字段是否存在?
"Select count(*) from ALL_TAB_COLUMNS where table_name = " & MatchValues!ORACLE_TABLE_NAME & " and COLUMN_NAME = " & MatchValues!FieldName
(Untestet导致目前我没有可用的Oracle实例)