<output id="os3gq"><ruby id="os3gq"></ruby></output>

    1. <mark id="os3gq"></mark>
    2. Access培訓
      網站公告
      ·Access快速平臺QQ群號:84825014    ·Access快速開發平臺下載地址及教程    ·歡迎添加微信交流賬號:AccessoftChu    ·如何快速搜索本站文章|示例|資料    
      您的位置: 首頁 > 技術文章 > 源碼示例

      【Access查詢示例】查詢出行最小值的同時,把最小值對應的字段名也取出來能否實現?

      時 間:2020-04-21 12:42:19
      作 者:金宇   ID:43  城市:江陰
      摘 要:【Access查詢示例】查詢出行最小值的同時,把最小值對應的字段名也取出來能否實現?
      正 文:

      一、學友問題描述:
            Access查詢能否實現查出行最小值的同時,將供應商名稱也取出來?取值我可以查詢出來,我想把最小值對應的字段名也取出來能否實現?如下圖:
      點擊圖片查看大圖


      希望得到的效果:

      點擊圖片查看大圖


      二、解決方法:

            用循環代碼即可實現,示例代碼如下:

      Private Sub Cmd_Result_Click()
          Dim rst As Object
          Dim strSQL As String
          Dim m_maxValue As Currency
          Dim strField As String

          Set rst = CreateObject("adodb.recordset")
          strSQL = "select * from 原表"
          rst.Open strSQL, CurrentProject.Connection, 1, 3
          Do While Not rst.EOF
              m_maxValue = 0
              strField = ""
              If Nz(rst!供應商A, 0) < Nz(rst!供應商B, 0) Then
                  m_maxValue = rst!供應商A
                  strField = "供應商A"
              Else
                  m_maxValue = rst!供應商B
                  strField = "供應商B"
              End If

              If m_maxValue < Nz(rst!供應商C, 0) Then
                  m_maxValue = m_maxValue
              Else
                  m_maxValue = rst!供應商C
                  strField = "供應商C"
              End If

              If m_maxValue < Nz(rst!供應商D, 0) Then
                  m_maxValue = m_maxValue
              Else
                  m_maxValue = rst!供應商D
                  strField = "供應商D"
              End If

              If m_maxValue < Nz(rst!供應商E, 0) Then
                  m_maxValue = m_maxValue
              Else
                  m_maxValue = rst!供應商E
                  strField = "供應商E"
              End If
              rst!最小值 = m_maxValue
              rst!供應商名稱 = strField
              rst.Update
              rst.MoveNext
          Loop
          rst.Close
          Set rst = Nothing
          MsgBox "處理完成,請點擊確定按鈕打開看結果!", vbInformation, "提示:"
          DoCmd.OpenTable "原表"
          DoCmd.MoveSize 7000, 2150, 9500, 6500
      End Sub


      附   件:

      點擊下載此示例學習

      演   示:



      Access軟件網QQ交流群 (群號:252407829)       access源碼網店

      最新評論 查看更多評論(3)

      2020/5/24 17:50:55lyg5498426
      這樣改進是不是好一點! Private Sub Cmd_Result_Click() Dim rst As Object Dim strSQL As String Dim m_maxValue As Currency Dim strField As String Set rst = CreateObject("adodb.recordset") strSQL = "select * from 原表" rst.Open strSQL, CurrentProject.Connection, 1, 3 Do While Not rst.EOF arr = Array(rst!供應商A, rst!供應商B, rst!供應商C, rst!供應商D, rst!供應商E) mixs = arr(0) For i = 0 To UBound(arr) If arr(i) <= mixs Then mixs = arr(i): minp = arr(i).Name Next rst!最小值 = mixs rst!供應商名稱 = minp rst.Update rst.MoveNext Loop rst.Close Set rst = Nothing MsgBox "處理完成,請點擊確定按鈕打開看結果!", vbInformation, "提示:" DoCmd.OpenTable "原表" DoCmd.MoveSize 7000, 2150, 9500, 6500 End Sub

      2020/4/21 23:12:53麥田
      方法多種的,大家有好的方法示例,也可以制作好了分享到網站上發布

      2020/4/21 23:06:40大洋
      如果將物料編碼/供應商ID/價格等建立一個表,這樣就可以利用聚合查詢的函數出結果,不用寫代碼更方便一些

      發表評論您的評論將提升作者分享的動力!快來評論一下吧!

      用戶名:
      密 碼:
      內 容:
       

      常見問答

      技術分類

      相關資源

      關于我們 | 服務條款 | 在線投稿 | 友情鏈接 | 網站統計 | 網站幫助