- ベストアンサー
Accessについての質問
- Accessに関する質問をまとめています。
- 質問内容について詳しく説明しています。
- いくつかの質問に対する回答について説明しています。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- アクセスVBA(先日の続きになります)
前回教えていただきました検索抽出のVBAですが、抽出がうまくできなくなってしまいました。 抽出条件を入力しているにもかかわらず、全部のデータが表示されてしまいます。 どこがまずいのかわかりましたら、ぜひ教えてください。 Private Sub btn_検索02_Click() Dim kensaku As String If Not Me![t_04] = "" Then kensaku = kensaku & _ "([舗装施行年度] Like '*" & Me![t_04] & "*') AND " If Not Me![t_05] = "" Then kensaku = kensaku & _ "([舗装工事名] Like '*" & Me![t_05] & "*') AND " If Not Me![t_06] = "" Then kensaku = kensaku & _ "([舗装区間01] Like '*" & Me![t_06] & "*') AND " If Not Me![t_07] = "" Then kensaku = kensaku & _ "([舗装区間02] Like '*" & Me![t_07] & "*') AND " If Not Me![t_08] = "" Then kensaku = kensaku & _ "([改良施行年度] Like '*" & Me![t_08] & "*') AND " If Not Me![t_09] = "" Then kensaku = kensaku & _ "([改良工事名] Like '*" & Me![t_09] & "*') AND " If Not Me![t_10] = "" Then kensaku = kensaku & _ "([改良区間01] Like '*" & Me![t_10] & "*') AND " If Not Me![t_11] = "" Then kensaku = kensaku & _ "([改良区間02] Like '*" & Me![t_11] & "*') AND " If Not Me![t_12] = "" Then kensaku = kensaku & _ "([台帳作図年度] Like '*" & Me![t_12] & "*') AND " If Not Me![t_13] = "" Then kensaku = kensaku & _ "([台帳調査名] Like '*" & Me![t_13] & "*') AND " If kensaku <> "" Then kensaku = Left(kensaku, Len(kensaku) - 5) DoCmd.OpenForm "検索結果", , , kensakum, acFormReadOnly DoCmd.Maximize DoCmd.Close acForm, Me.Name End If End Sub
- ベストアンサー
- オフィス系ソフト
- accessの検索フォームについて(複数条件)
access初心者です。 本などを参考に検索フォームを作成しました。 1つの条件で検索することは出来たのですが、複数の条件を入力するとうまく検索出来ません。 全ての条件を満たすデータの抽出を行いたいと思います。 「あ」「い」「う」というテキストボックスを用意しています。 Private Sub コマンド14_Click() If Not IsNull(Me.txt_あ) Then ' Me.Filter = "あ LIKE '*" & Me!txt_あ & "*'" End If If Not IsNull(Me.txt_い) Then ' Me.Filter = "い LIKE '*" & Me!txt_い & "*'" End If If Not IsNull(Me.txt_う) Then ' Me.Filter = "う LIKE '*" & Me!txt_う & "*'" End If Me.FilterOn = True End Sub よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Access VBA 複数検索方法(初心者)
下記の様に検索すると、 "テキスト名称"と"テキスト分類"の2つのテキストボックスを使用して検索ですが、 1つのテキストボックス"テキストA"で両方(名称・分類)又は2つ以上を検索させるには、どのようにしたら良いでしょうか? <テキストボックス1つでテーブル全部を検索したい> ご教授お願い致します。(Access2000) Private Sub コマンド17_Click() Dim st As String If Not IsNull(Me.テキスト名称) Then st = st & " AND 名称 like'*" & Me.テキスト名称 & "*'" End If If Not IsNull(Me.テキスト分類) Then st = st & " AND 分類 like '*" & Me.テキスト分類 & "*'" End If st = Mid(st, 6) DoCmd.OpenReport "レポート", acViewPreview, , st End Sub
- 締切済み
- オフィス系ソフト
- 1つのテキストボックスで全フィールドを検索するには
1つのテキストボックスで全フィールドを検索するには Access2002使用です。 現在フォームにて、それぞれのフィールド毎に検索用のテキストボックスを用意してる為、 下記のようになっています。 これを、1つのテキストボックスで全てのフィールドを検索できるようにするには、 どこを訂正したらよろしいでしょうか? 宜しくお願い致します。 Option Compare Database Function exeFilter() Dim strFilter As String If Not IsNull(姓検索) Then strFilter = " AND 姓 Like '*" & Me.姓検索 & "*'" End If If Not IsNull(名検索) Then strFilter = strFilter & " AND 名 Like '*" & Me.名検索 & "*'" End If If Not IsNull(姓ふりがな検索) Then strFilter = strFilter & " AND ふりがな(姓) Like '*" & Me.姓ふりがな検索 & "*'" End If If Not IsNull(名ふりがな検索) Then strFilter = strFilter & " AND ふりがな(名) Like '*" & Me.名ふりがな検索 & "*'" End If If Not IsNull(住所1検索) Then strFilter = strFilter & " AND 住所1 Like '*" & Me.住所1検索 & "*'" End If If Not IsNull(住所2検索) Then strFilter = strFilter & " AND 住所2 Like '*" & Me.住所2検索 & "*'" End If If Not IsNull(住所1ふりがな検索) Then strFilter = strFilter & " AND 住所1ふりがな Like '*" & Me.住所1ふりがな検索 & "*'" End If If Not IsNull(住所2ふりがな検索) Then strFilter = strFilter & " AND 住所2ふりがな Like '*" & Me.住所2ふりがな検索 & "*'" End If Me.Filter = Mid(strFilter, 6) Me.FilterOn = True End Function Private Sub Form_AfterUpdate() End Sub
- ベストアンサー
- オフィス系ソフト
- accessの検索で・・・
お世話になっております。 今、OfficeXPで、Accessを使ってデータベースを作っています。 そこで、フィルタについて教えていただけないでしょうか(TへT) まずは、こんな感じでVBAを書いてみたのですが・・・ Private Sub kensaku_Click() Dim rsql1 As String Dim rsql2 As String Dim keys As String keys = InputBox("キーワードを入力してください", "キーワード検索") If keys = "" Then Exit Sub End If rsql1 = "select tel from master where dairi_code = keys" rsql2 = "select tel2 from master where contact_tel = keys" If rsql1 <> "" Then Me.Filter = "tel = '" & keys & "'" Me.FilterOn = True DoCmd.OpenForm "form_tel", acNormal, , "[tel] = '#" & key & "#'", acFormEdit, acDialog ElseIf rsql2 <> "" Then Me.Filter = "tel2 = '" & keys & "'" Me.FilterOn = True DoCmd.OpenForm "form_tel2", acNormal, , "[tel2] = '#" & key & "#'", acFormEdit, acDialog Else: MsgBox "該当するデータはありません", vbOKOnly End If End Sub と、いう感じです。 したいことは、2つのそれぞれのテーブルに検索をかけ、一致したのがあったらそれに対応するフォームを開くと言う感じにしたいです。 ロジック的に穴がありすぎると思いますが、どうかよろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- Access2000のVBAについて
下記のプログラムだと挿入が可能になります。 Private Sub 削除_コマンド_Click() If IsNull(Me.社員コード) Then MsgBox ("社員コードが入力されていません") Else Dim strSQL As String strSQL = "INSERT INTO 社員情報テーブル(社員コード,作成日) " _ & " VALUES ('" & Me.社員コード & "', now());" DoCmd.RunSQL strSQL End If End Sub しかし、下記のプログラムだとinsert文の『Me.社員コード』で エラーが発生します。 エラーメッセージは 『メソッドまたはデータメンバが見つかりません』 と表示されます。 上と下とどう違うのでしょうか。 Private Sub 削除_コマンド_Click() If IsNull(Me.社員コード) Then MsgBox ("社員コードが入力されていません") Else Dim strSQL As String strSQL = "INSERT INTO 社員情報テーブル(社員コード,氏名(氏),作成日) " _ & " VALUES ('" & Me.社員コード & "','" & Me.氏名(氏) & "', now());" DoCmd.RunSQL strSQL End If End Sub
- ベストアンサー
- その他(データベース)
- 以下のアクセスの検索フォームで。。。
検索フォームの項目は以下の通りです。 ○ AND ○ OR 名前 [ ] 項目 [ ]▼ [ ]▼ [ ]▼ もとになってるテーブルは ・名前 ・項目1 ・項目2 ・項目3 ・項目4 ・項目5 というようなっています。 検索ボタンのコードは Select Case Me!検索方法.Value Case 1 'or tempOper = " AND " strCount = 5 Case 2 'and tempOper = " OR " strCount = 4 End Select '名前 If Me!SyainName.Value <> "" Then condName = "(T_マスタ.氏名 like '*" & Me!SyainName.Value & "*')" WhereCond = WhereCond & tempOper & condName End If '項目 If Me!Koumoku1.Value <> "" Then condKoumoku1 = "(T_マスタ.項目1 like '*" & Me!Koumoku1.Value & "*')" condKoumoku2 = "(T_マスタ.項目2 like '*" & Me!Koumoku1.Value & "*')" condSKoumoku3 = "(T_マスタ.項目3 like '*" & Me!Koumoku1.Value & "*')" tempCond = tempCond & " OR (" & condKoumoku1 & " OR " & condKoumoku2 & " OR " & condKoumoku3 & ")" End If If tempCond <> "" Then tempComd = Mid(tempCond, 5) WhereCond = WhereCond & tempOper & "(" & tempCond & ")" End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果_一覧", acNormal, , WhereCond これを実行すると クエリ式 '(OR((T_マスタ.項目1 like …')の構文エラー:演算子がありません。 と出ます。 どこを訂正すべきでしょうか? (項目を含まない状態ではうまく検索できてました。) Access2000です。
- ベストアンサー
- オフィス系ソフト
- アクセスvba if文の記述方法
検索フォームを作成しました。 入力項目は「氏名」「カナ」で入力チェックをおこなっております。 (未入力)メッセージを表示「未入力です」 (入力有)結果一覧のフォームを表示 未入力チェックは正常に処理されておりメッセージが表示されます。 項目に値を入力した場合フォームが起動しません。 if文から外した場合は正常に実行されます。 この条件の場合if文でどのように記述したらよいのでしょうか。 宜しくお願いします。 Private Sub 検索_Click() Dim mct As Control Dim flg As Boolean flg = False For Each mct In Me.Controls If mct.ControlType = acTextBox Then If mct.Tag = "Check" Then If Not IsNull(mct) Then flg = True Exit Sub End If End If End If Next mct If flg = True Then Dim str As String str = "[氏名] Like ""*" & Me!氏名 & "*"" And [カナ] Like ""*" & Me!カナ & "*""" DoCmd.OpenForm "結果一覧", , , str Else MsgBox ("未入力です") End If End Sub
- ベストアンサー
- オフィス系ソフト
- Accessの検索で「~以外」
VBAで検索フォームを作成しています。 普通は「○○にあてはまるもの」という検索ですが、 「○○以外のものを検索」というようにしたい場合はどのようにすればいいのでしょうか? 通常の検索はこんな感じです。 If Me!検索値.Value <> "" Then condKey = "(T_マスタ.フィールド like '*" & Me!検索値.Value & "*')" WhereCond = WhereCond & tempOper & condKey End If WhereCond = Mid(WhereCond, strCount + 1) DoCmd.OpenForm "F_検索結果", acNormal, , WhereCond access2000です。
- ベストアンサー
- オフィス系ソフト
- Accessフォームでの複数条件検索
検索用テキストが4つとコンボボックスが1つあり、検索ボタンというコマンドボタンを押すと 該当するレコードを表示させるフォームを作りました。 以下がそのVBAです。 Private sub 検索ボタン_click() Dim strfilter As String, strexp As String, aryope As Variant If Not IsNull (me.一) Then strfilter = "And 出版社 Like '*" & Me.一 & "*'" End If If Not IsNull (me.コンボ62) Then strfilter = "And 種類 Like '*" & Me.コンボ62 & "*'" End If If Not IsNull (me.三) Then strfilter = "And 番号 Like '*" & Me.三 & "*'" End If If Not IsNull (me.四) Then strfilter = "And 発刊日 = # " & Format (me.四. "yyyy-mm-dd") & "#" End If If Not IsNull (me.一) Then strfilter = strfilter & " AND " & BuildCritera ( "タイトル", dbText, "*" Replace ( me.五, "", "*AND*") & "*") End If 改正したいことは 1. 検索用テキストボックスに入力された値全てを満たすレコードを表示したい(現在は例えば 出版社、タイトル、番号の3つを入力するとそれぞれの項目にヒットする物がすべて検出さ れる) 2. テキストボックス[三]の番号は完全一致で抽出したい(26を抽出したいのに126や2673 等も抽出されてしまう) 3. テキストボックス[四]の発刊日は西暦表示から和暦で入力して検索したい (テキストボックス[四]をコンボボックスに変え、西暦・和暦両方表示にし、[四A]を追加して 月日という名前にしてこれら年月日をくっつけて完全一致で検索する方法を考えましたが 記述がわかりません) 5.タイトルがWeb検索の様に複数曖昧検索ができない 中途半端な検索で抽出してる状態です。 どなたか手直しいただけますでしょうか?
- 締切済み
- オフィス系ソフト
お礼
ご回答ありがとうございました。 Left(kensaku, Len(kensaku) - 5) の意味がようやく理解できました。 理解力がなくて何度も回答させてしまいまして、申し訳ありませんでした。m(--)m また、質問すると思いますがその時はよろしくお願いします。