首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问VBA DLOOKUP

访问VBA DLOOKUP
EN

Stack Overflow用户
提问于 2018-08-16 10:54:21
回答 2查看 167关注 0票数 1
代码语言:javascript
复制
Teller = Nz(DLookup("[Teller]", "[Lookuptable]", ("Artikel = '" & ValueArtikel & "' " And " Lookuptable= 'G'")), 0)
Noemer = Nz(DLookup("[Noemer]", "[lookuptable]", ("Artikel = ' " & ValueArtikel & " ' " And Lookuptable= " 'G' ")), 0)

我想在acces中执行一个DLOOKUP,但是我找不到正确的语句。我查看了许多站点,这是我认为是正确的两个查找,但都给出了错误类型不匹配。出纳员和noemer是整数,Artikel和artikelvalue和Lookuptable是字符串。对不起已经问过了但我找不到。我找到了很多关于它的帖子,但我无法修复它。尤其是对我糟糕的英语感到抱歉

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-16 11:07:35

第一个很接近。使用变量和Debug.Print帮助构建字符串。

Ctrl+g显示输出。

代码语言:javascript
复制
strCrit = "Artikel = '" & ValueArtikel & "' And Lookuptable= 'G'"
Debug.Print strCrit
Teller = Nz(DLookup("[Teller]", "[Lookuptable]", strCrit), 0)
票数 2
EN

Stack Overflow用户

发布于 2018-08-17 04:28:16

我使用自己的函数进行查找,因为查找的性能非常差。

代码语言:javascript
复制
' Lookups Replacements
'---------------------

Function DLook(Expression As String, Domain As String, Optional Criteria) As Variant

  On Error GoTo Err_Handler

  Dim strSQL As String

  'DCount: strSQL = "SELECT COUNT(" & Expression & ") FROM " & Domain

  'Other replacements
  'DLookup: 
   strSQL = "SELECT " & Expression & " FROM " & Domain
  'DMax: strSQL = "SELECT MAX(" & Expression & ") FROM " & Domain
  'DMin: strSQL = "SELECT SUM(" & Expression & ") FROM " & Domain
  'DFirst: strSQL = "SELECT FIRST(" & Expression & ") FROM " & Domain
  'DLast: strSQL = "SELECT LAST(" & Expression & ") FROM " & Domain
  'DSum: strSQL = "SELECT SUM(" & Expression & ") FROM " & Domain
  'DAvg: strSQL = "SELECT AVG(" & Expression & ") FROM " & Domain

  If Not IsMissing(Criteria) Then strSQL = strSQL & " WHERE " & Criteria
  DLook = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenForwardOnly)(0)

Exit Function

Err_Handler:
  MsgBox "Error. Lookup couldnt be performed" & vbNewLine & Err.Description, vbCritical

End Function

呼叫:

代码语言:javascript
复制
If DLook("Column2", "Table1", "Column1 = " & ID) = 0 Then
  'Do stuff
End If

If DLook("Column2", "Table1") = 0 Then
  'Do other stuff
End If
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51875346

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档