• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSを活用して商品変動を捉えたい(2))

ACCESSを活用して商品変動を捉えたい(2)

このQ&Aのポイント
  • 会員番号が同じお客様の場合で、商品コード、商品名が前のリストから変わったリストのみを抽出する方法について教えてください。
  • また、クエリー(SQL?)で抽出する際に、受付日と切り替えの日数を表示する方法も教えてください。
  • さらに、テーブルの列が追加された場合、自動的にクエリーに反映する方法も知りたいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

私は、「そんなやり方だったら誰でもできる!」って方式に拘っています。ですから、原則、単一SELECT文で全てを済ましてきました。そういうやり方でよければ・・・。 SELECT DBLookup("SELECT 受注日 FROM 受注履歴 WHERE 氏名='" & [氏名] & "' AND 受注日 < #" & [受注日] & "# ORDER BY 受注日 DESC") AS 前回受注日, DateDiff("d",前回受注日,受注日) AS 切り替え, * FROM 受注履歴; ただし、「単一SELECT文で全てを済ます」を貫くには、DBLookup()などのSELECT文を自在に組み込めるユーザー関数が必要。 まあ、賛否両論でしょうが「誰でも書ける!」ことには間違いありません。 Public Function DBLookup(ByVal strQuerySQL As String, _              Optional ByVal ReturnValue = Null) As Variant On Error GoTo Err_DBLookup   Dim DataValue   Dim rst     As ADODB.Recordset   Set rst = New ADODB.Recordset   With rst     .Open strQuerySQL, _        CurrentProject.Connection, _        adOpenStatic, _        adLockReadOnly     If Not .BOF Then       .MoveFirst       DataValue = .Fields(0)     End If   End With Exit_DBLookup: On Error Resume Next   rst.Close   Set rst = Nothing   DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)   Exit Function Err_DBLookup:   MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _       "・Err.Description=" & Err.Description & Chr$(13) & _       "・SQL Text=" & strQuerySQL, _       vbExclamation, " 関数エラーメッセージ"   Resume Exit_DBLookup End Function

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

注意:先のSQL文は、Order By 節の最適化はしていません。

すると、全ての回答が全文表示されます。
回答No.2

訂正:会員番号で比較すべきでした!

mcdone
質問者

補足

うーーん、駄目です。mm

すると、全ての回答が全文表示されます。

関連するQ&A