Access2000でDBをつくりました。

そのデータから検索をして、抽出をしたいのです。
検索条件をいれるデータはこれ、と決まっていればパラメータークエリでもつくればいいのですが、どれでも検索条件にするようにしたい、と使用者から頼まれました。
入力方法としては単票フォームを開き、検索したい項目に、検索条件をいれると抽出される、というようなものです。
検索したい項目は日付かもしれないし、名前かもしれない、はたまた会社名かもしれない、とバラバラなのです。
その項目毎にパラメータクエリをつくるのもちょっと・・・と思うので。
何かいい方法はありますでしょうか?

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (8件)

こんにちは。

maruru01です。
まず最初に、抽出するフィールドは、[一覧]テーブルの全フィールドではないのですか? もし全フィールドなら、"SELECT * FROM 一覧 WHERE ・・・"としましょう。
さて、一応上のように全フィールドを抽出するとすると
intKen = CLng(Me!検索値)
SQL = "SELECT * FROM 一覧 WHERE Date_year = " & intKen
DoCmd.RunSQL SQL
となります。
KODAMARさんのコードでは、
"の位置がおかしい
SELECTやFROMの前後に半角スペースがあるか
SQLステートメントの文末がおかしい(最後の"がないなど)
文末の「;」は不要
などの問題点があります。
とりあえず、改行などは考えずに作りましょう。
ちなみに、テーブルは[一覧]しか使用しないので、テーブル名を省略してもかまいません。
またSELECT句で一部のフィールドのみ抽出する場合は、
SQL = "SELECT Date_year, Date_month, Date_day FROM ・・・"
という風に記述して下さい。
では。
    • good
    • 0

経験者様からの回答が得られなかった場合に参考にしてください!



>これは・・・検索フォームをつくるための検索クエリに入れればよいのでしょうか?(初心者ですいません。)

ちがいます!フォーム上にコマンドボタンを作ってコマンドボタンを右クリック
その中に「プロパティ」をクリック。
コマンドボタンのメニューが出ますので「イベント」をクリック
「イベント」の「クリック時」をクリック
「...」右側に3点リーダみたいなものがありますのでそれをクリック
そうすると「イベントプロシージャ」が立ち上がりますので、その中に記述してください。
ただし初心者では経験者様が書かれているのはチトムズイかも知れませんね!
>>第一歩として私が書いたものをソックリ真似てみてください。
>>あとは徐々に経験者さまの記述を解析をしてくことをお勧めします。

>・複数フィールドを一度に検索することもある。(日付と名前とか)
>・同じフィールドで複数条件を検索することもある。(田中と山田という名前、とか)
>・上記2つを同時に行うこともある。(東京都に住んでいる田中と山田など)

>それとできたら、ということで言われたのですが、ANDとORを切替えることができ>るボタンのようなものが欲しい、とのことなのです。
>こういうことってできるのでしょうか?

できますけど・・・VBA経験を積んでからのご使用をお勧めします。
それと大変失礼ですが、VBAの本を1冊買われて完読してみては?
↓私が完読した本です。かなり勉強になりました。
例題物
・Access2000VBA基本例題(技術評論社)2680円
関数物
・Access2000関数&SQL&エラー処理(エーアイ出版)2600円
その他
・Access2000VBAプログラミング BlackBook 3980円

この中には例題CD付きの物も有り、検索例題でKODAMARさんがしたい事が
そっくりそのまま載ってましたよ!

また判らない事があれば追記してください。
    • good
    • 0

あまり良い方法ではない(※レコード数に準じてメモリをかなり食います。

)
のですが、簡単な検索です。
フィルタを使用する検索方法です。ちなみにマクロにフィルタって有りますよね
それをソースで書くとこのようになります。(重いところもソックリ!)

1.検索用のフォームを作ります。
2.フォームヘッダにテキストボックスを1つ作ります。
3.「検索」「解除」というコンボボックスを1つずつ作ります。
4.「検索」のソースです。
DoCmd.ApplyFilter , "([検索先の名前] Like '*" & Me.2で作ったテキストボックス名 & "*')
5.「解除」のソースです。
Docmd.ShowAllRecords
以上です。
もし複数の検索値を指定したい場合は、([検索先]~) AND ([検索先]~)
ん~できれば↓の経験者様のソースを参考にするべきと思います。
    • good
    • 0

条件付でサンプルコードを記します


・文字列検索のみ
・一つのフィールドのみ検索可(指定変更可能)
・複数条件の時は、OR条件で検索する

データはフォームで開いていて、検索フォームを作成したと仮定します
(データを開いているフォームは、「ABC」と仮定します)
(検索フォームは、「検索値」テキストボックスと「検索実行」コマンドボタンが配置されている)

'~~~~~~~~~~~~~~~~~~~~
Private Sub 検索実行_Click()
Dim stSearch As String '検索値
Dim stFieldName As String '検索対象フィールド名
Dim stFormName As String '検索対象フォーム名
Dim stSQL As String '検索条件
Dim stMsg As String 'メッセージ
Dim RS As DAO.Recordset '検索用レコードセット

'検索値を取得
stSearch = Nz(Me![検索値].Value, "")
If stSearch = "" Then
stMsg = "検索値が設定されていません!"
MsgBox stMsg, vbExclamation
Exit Sub
End If

'検索フィールド設定
stFieldName = "氏名"

'検索条件設定(複数可:"/"にて判断)
stSQL = 条件式作成(stSearch, stFieldName)

'検索対象フォームのレコードセット展開(フィルタ設定込み)
stFormName = "ABC"
Set RS = Forms(stFormName).RecordsetClone

'検索実行(次へ)
RS.FindNext stSQL
If RS.NoMatch = True Then
'検索実行(全体)
RS.FindFirst stSQL
If RS.NoMatch = True Then
stMsg = "データがありません!"
MsgBox stMsg, vbExclamation
Else
stMsg = "最後まで検索しました!" & vbCrLf & "また最初から検索しますか?"
If MsgBox(stMsg, vbYesNo + vbQuestion) = vbYes Then
'レコード移動
Forms(stFormName).Bookmark = RS.Bookmark
End If
End If
Else
'レコード移動
Forms(stFormName).Bookmark = RS.Bookmark
End If

'レコードセット解放
Set RS = Nothing

End Sub

'~~~~~~~~~~~~~~~~~~~~
Private Function 条件式作成(stSearch As String, stFieldName As String) As String
Dim stSQL As String '検索条件
Dim stTmp As String '作業用文字列
Dim intCnt1 As Integer '作業用カウンタ1
Dim intCnt2 As Integer '作業用カウンタ2
Const stSepa As String = "/" '検索条件区切り文字
Const stAst As String = "*" '検索条件アスタリスク
Const stQues As String = "?" '検索条件クエスチョン

'検索条件設定(複数可:"/"にて判断)
stSQL = ""
intCnt1 = 1
intCnt2 = InStr(1, stSearch, stSepa)
If intCnt2 = 0 Then
'条件式設定
If InStr(1, stSearch, stAst) = 0 And InStr(1, stSearch, stQues) = 0 Then
stSQL = "((" & stFieldName & ") = '" & stSearch & "')"
Else
stSQL = "((" & stFieldName & ") Like '" & stSearch & "')"
End If
Else
stTmp = Mid(stSearch, intCnt1, intCnt2 - 1)
Do Until stTmp = ""
'条件接続詞を付加
If stSQL <> "" Then stSQL = stSQL & " Or "
'条件式追加
If InStr(1, stTmp, stAst) = 0 And InStr(1, stTmp, stQues) = 0 Then
stSQL = stSQL & "((" & stFieldName & ") = '" & stTmp & "')"
Else
stSQL = stSQL & "((" & stFieldName & ") Like '" & stTmp & "')"
End If
intCnt1 = intCnt2 + 1
intCnt2 = InStr(intCnt1, stSearch, stSepa)
If intCnt2 = 0 Then intCnt2 = Len(stSearch)
stTmp = Mid(stSearch, intCnt1, intCnt2 - intCnt1 + 1)
Loop
End If

'戻り値設定
条件式作成 = stSQL

End Function

'~~~~~~~~~~~~~~~~~~~~
※参照設定で、「Microsoft DAO 3.6 Object Library」にチェックをつけておいて下さい

すいませんm(_ _)m 長くなってしまいました。
たぶん求めているのに近いと思います。(細かいところまでは動作確認をしておりませんが...)


抽出機能に関しては、「検索実行(次へ)」から以下を下記コードに置き換えればできると思います。
ただ、抽出(フィルタ)機能を使用すると、フィルタ条件をフォームが覚えてしまうので、どこかでフィルタの初期化をしてあげなければなりません。
'~~~~~~~~~~~~~~~~~~~~
'抽出実行
Forms(stFormName).Filter = stSQL
Forms(stFormName).FilterOn = True
'~~~~~~~~~~~~~~~~~~~~

フィールド名設定やフォーム名設定などは、フォーム構成がどうなっているか分からないので、ちょっとアドバイスしかねます。

もし、分からないところがあれば補足を御願い致します
それでは頑張って下さい (^^)/

この回答への補足

詳しい回答ありがとうございます!

これは・・・検索フォームをつくるための検索クエリに入れればよいのでしょうか?(初心者ですいません。)

>・文字列検索のみ
>・一つのフィールドのみ検索可(指定変更可能)
>・複数条件の時は、OR条件で検索する

条件まで考えていただいてありがとうございます。
確かにこういうことを考えなきゃ、と気づき使用者にきいたところ

・複数フィールドを一度に検索することもある。(日付と名前とか)
・同じフィールドで複数条件を検索することもある。(田中と山田という名前、とか)
・上記2つを同時に行うこともある。(東京都に住んでいる田中と山田など)

ということなのだそうです。

なんかできるのかできないのかさえ自分で判断できなくなってきてしまいました・・・。

それとできたら、ということで言われたのですが、ANDとORを切替えることができるボタンのようなものが欲しい、とのことなのです。
こういうことってできるのでしょうか?

>フィールド名設定やフォーム名設定などは、フォーム構成がどうなっているか分からないので、ちょっとアドバイスしかねます。

下に使用するフィールド名をかきますね。

・Date_year     日付の年(Ex.00(年))
・Date_month     日付の月(Ex.01(月))
・Date_day      日付の日にち
・氏名ID       個々に番号をつける
・ソートID1     ソートをするためのキー
・ソートID2     ソートをするためのキー
・氏名        
・削除対象      削除する場合にチェックする。(チェックボックス)
・挨拶状送付     送付する場合にチェックを入れる。(チェックボックス)
・年賀状送付先    自宅か会社か選択をする。
・暑中見舞い送付先    同  上
・ランク       A~Eを選ぶ。
・喪中        喪中の場合にチェック。(チェックボックス)
・会社グループID   会社のグループを選択する。
・会社名       
・会社名2      
・役職        
・所属        
・会社郵便番号    会社の郵便番号
・会社住所_都道府県  会社の住所の都道府県
・会社住所_市町村       市町村
・会社住所_町名        町名・番地
・会社電話番号    会社の電話番号
・自宅郵便番号    
・自宅住所_都道府県
・自宅住所_市町村
・自宅住所_町名
・自宅電話番号
・お歳暮・お中元_備考
・住所・ハガキ_備考
・異動・退職_備考
・その他_備考

以上が全フィールドです。

会社・自宅の住所・郵便番号は相互でどちらかを入れるとどちらかが自動で入るようになっています。


このような状態のもので検索フォームを作成し、使用することは可能でしょうか?

長々とかいてしまいました。
よろしくお願いします。

補足日時:2001/12/19 11:43
    • good
    • 0

maruru01さん・こんにちは!


先日はありがとうございました。
KODAMARさんへ
「私もmaruru01さんにお世話になっている1人です。わかりやすい
説明ですのでmaruru01さんの回答を参考にしてください。では」
    • good
    • 0

No.3のmaruru01です。


訂正です。
SELECTの前には半角スペースは要りません。(SQLステートメントの先頭なので。)
では。
    • good
    • 0

簡単な検索ソースを書きます。


↓がパラメータクエリをSQLビューで閲覧した際に見えますよね?

SELECT テーブル名.TEL, テーブル名.社名
FROM テーブル名
WHERE (((テーブル名.SQNO)= [SQNOを入力して下さい。] ));

そこで簡単な検索方法では↓Docmd.Runsqlを使用します。

Dim intKen As Integer 
'数字の場合Integer・文字列の場合はString
intKen = Me.検索値 
'検索値=フォームのテキストボックスの名前・intKen(変数に格納)
Docmd.Runsql "SELECT テーブル名.TEL, テーブル名.社名" _
& "FROM テーブル名 WHERE (((テーブル名.SQNO)= " & intKen & " ));
'「説明」SQLを改行する際は「 ~" _ 」で改行して次行は「 & " 」
'[]のパラメータクエリが入る場所に"&変数名&"を入れる。
'上記は数字の場合で文字列は「 '" & intKen & "' 」

こんな感じでよろしいでしょうか?
そうそうあいまい検索の際には「*」を入れてください。
また、わからない点は追記して下さい。

この回答への補足

Dim intKen As Integer
intKen=Me.検索値
docmd.Runsql"SELECT 一覧.Date_year, 一覧.Date_month, 一覧.Date_day, 一覧.氏名ID, 一覧.ソートID1, 一覧.ソートID2, 一覧.氏名, 一覧.削除対象, 一覧.挨拶状送付, 一覧.年賀状送付先, 一覧.暑中見舞送付先, 一覧.ランク, 一覧.喪中, 一覧.会社グループID, 一覧.会社名, 一覧.会社名2, 一覧.役職, 一覧.所属, 一覧.会社郵便番号, 一覧.会社住所, 一覧.会社電話番号, 一覧.自宅郵便番号, 一覧.自宅住所, 一覧.自宅電話番号, 一覧.お歳暮・お中元_備考, 一覧.住所・ハガキ_備考, 一覧.異動・退職_備考, 一覧.その他_備考"_&From 一覧 WHERE(((一覧.Date_year)=" & intKen & "));

とかいたところ
「SQLステートメントが正しくありません。
'DELEATE'、'INSERT'、'PROCEDURE'、'SELECT'または'UPDATE'をしようしてください。」
と出ました。
その後
SELECT 一覧.Date_year, 一覧.Date_month, 一覧.Date_day, 一覧.氏名ID, 一覧.ソートID1, 一覧.ソートID2, 一覧.氏名, 一覧.削除対象, 一覧.挨拶状送付, 一覧.年賀状送付先, 一覧.暑中見舞送付先, 一覧.ランク, 一覧.喪中, 一覧.会社グループID, 一覧.会社名, 一覧.会社名2, 一覧.役職, 一覧.所属, 一覧.会社郵便番号, 一覧.会社住所, 一覧.会社電話番号, 一覧.自宅郵便番号, 一覧.自宅住所, 一覧.自宅電話番号, 一覧.お歳暮・お中元_備考, 一覧.住所・ハガキ_備考, 一覧.異動・退職_備考, 一覧.その他_備考

Dim intKen As Integer
intKen=Me.検索値
docmd.Runsql"SELECT 一覧.Date_year, 一覧.Date_month, 一覧.Date_day, 一覧.氏名ID, 一覧.ソートID1, 一覧.ソートID2, 一覧.氏名, 一覧.削除対象, 一覧.挨拶状送付, 一覧.年賀状送付先, 一覧.暑中見舞送付先, 一覧.ランク, 一覧.喪中, 一覧.会社グループID, 一覧.会社名, 一覧.会社名2, 一覧.役職, 一覧.所属, 一覧.会社郵便番号, 一覧.会社住所, 一覧.会社電話番号, 一覧.自宅郵便番号, 一覧.自宅住所, 一覧.自宅電話番号, 一覧.お歳暮・お中元_備考, 一覧.住所・ハガキ_備考, 一覧.異動・退職_備考, 一覧.その他_備考"_&From 一覧 WHERE(((一覧.Date_year)=" & intKen & "));
としましたが、やはりうまくいきません。

どこが間違っているのでしょうか?

補足日時:2001/12/14 09:05
    • good
    • 0

検索機能のみでしたら、Accessの検索ダイアログを使用するのが一番です。


ですが、抽出機能(フィルタ)も付加したフォームを作成するとなれば、VBAの知識が必要になってきます。
(確かにパラメータクエリーだけでは作るのは面倒になってきますね)

VBAで作成する場合には、コードの中でSQL(クエリー)を編集し、実行する方法が宜しいかと思います。

的をはずしていたら、すみません (^^;)

この回答への補足

早速のご回答ありがとうございます。

検索ダイアログをしようする、というのも考えましたが、あれって検索条件がひとつだけなんですよね?
複数の条件をつけたいこともあるらしいので・・・。

もしよろしければVBA・SQLの書き方を教えていただけないでしょうか?

補足日時:2001/12/13 14:15
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccess2000のフォームでのフォームのIMEが、2度目以降変更してしまう。

アクセス初心者です。
Accsss2000のフォームでのデータ入力を楽におこなうために、例えば名前ならばテキストボックスのプロパティシートのその他タブから、IME入力モードをオンにしてかつIME変換モードを人名/地名に変更したのですが、1回目の入力はIMEが全角・人名モードになるのですが、2度目以降は半角カタカナ・人名/地名モードになってしまいます。全角ではありません。なぜでしょうか?
また上のタブにIME入力モード保持というのもありますが、どういう時に利用すればよいのでしょうか?

Aベストアンサー

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、「ひらがな/全角カタカナ/半角英数」などのモードを特に指定
 しない場合に使用します。そのため、特定モードで固定したい場合は、
 それに合わせた設定値(ここでは「ひらがな」)を指定する必要がある、
 ということです)


> 上のタブにIME入力モード保持というのもありますが、どういう時に
> 利用すればよいのでしょうか?

私自身はこの設定は使用していないのですが・・・(汗)

例えば、取引情報を入力する場合、『企業略称』テキストボックスには
「アルファベットの略称」や「漢字の略称」、「カタカナの略称」がそれぞれ
連続することになります。
このとき、同テキストボックスの『IME 入力モード』を「ひらがな」などに固定
してしまうと、アルファベットやカタカナの略称のデータを入力する際には
毎回手動で「全角カタカナ」や「半角英数」に切り替える・・・という使い方を
する方もいる可能性があります。
『IME 入力モード保持』は、恐らくそういう場合を想定した機能ではないかと
思います。
(もちろん、ひらがなからの変換で全角カタカナや半角英数に変換するように
 している人の場合は、切替は不要ですので、この設定は使用しなくても
 かまわないことになります)

> 1回目の入力はIMEが全角・人名モードになるのですが、
> 2度目以降は半角カタカナ・人名/地名モードになってしまいます。

恐らく、1回目の入力から2回目に当該テキストボックスへの移動までの
間に、半角カタカナを指定したテキストボックス(またはコンボボックス)を
経由しているのではないでしょうか。
(或いは『IME 入力モード』が「オフ」や「使用不可」、または英数系?)

ともあれ、回避策としては、『IME 入力モード』を、現在の「オン」から
「ひらがな」に変更します。
(「オン」は、...続きを読む

Qクエリのフィールド欄に作成した項目を抽出条件で利用するには?(Access2000)

Accsess2000、クエリについての質問です。

新規のクエリをデザインビューで開き、フィールド欄に、hoge:50 と入力します。シートビューにすると、hogeフィールドには50と表示されています。

デザインビューに戻り、新たなフィールド欄に 加算:[hoge]+100 と入力します。シートビューにすると、加算フィールドには150と表示されています。

以上のように、[hoge]という項目は他のフィールド欄でも利用できることがわかりました。

しかし、[hoge]を抽出条件欄で用いようとすると、パラメータの入力を求められてしまいます。
(例えば、[金額]フィールドの抽出条件に >[hoge] と設定するなど)

質問内容は、[hoge]を抽出条件で利用するにはどのようにすればよいか、というものです。

以上、よろしくお願い致します。

Aベストアンサー

[金額]>[hoge]
と言う式フィールドを作り
抽出条件欄に
True

Qフォーム等入力時においてIMEが働かない(?)

よく起こる現象で、インターネットでフォーム入力や、Yahooとかの検索入力で日本語入力をしたいときに、IMEが働かない現象が起きています。半角英数のみ入力ができます。私の環境だけでしょうか‥。
キーボードの「半角/全角」キーが効かないので、IMEツールバーを出して、マウスで日本語入力の「あ」にしても入力画面では半角英数に戻ったりします。
Wordやメモ帳を起動すると、正常に働くので、メモ帳を立ち上げてそこへ入力して、コピーしてペーストをしたりして対処をしています・・。
常にメモ帳を立ち上げておけば解決とかの意味ではありません。
IEをアクティブウィンドウにした場合、IMEが働くなくのです。

Aベストアンサー

確かIEのバグだったと思います。

対処法のリンクを貼っておきますので、参考にしてください。
http://www.tku.ac.jp/~densan/local/ie7-ime/ie7-ime.html

QORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出

ORACLEでLONG項目からCHAR項目へ桁数指定で文字列を抽出したいのですが、方法はありますか?
LONG項目の先頭から30桁分の文字を抽出し、CHAR項目に入力したいのですが。

会社で使用しているERPパッケージでLONG項目があり、どうしてもこの項目から文字が抽出したいのです。

回答のほど宜しくお願いします。

Aベストアンサー

ちょっと質問の意図がわからないのですが、
例えば、T1,T2の2つのテーブルがあったとして、
T1のnumというnumber(10)の項目があって、その中から
先頭の5桁を取ってきて、T2のcommentというCHAR(5)の
項目に転送するなら、
まず、T1のnumから5文字取ってきて、それを変数hoge[chr(5)]に入れる。

select substrb(to_char(num),1,5) into hoge from t1 where id=1;

それから、hogeをT2のcomment列に挿入する。

insert into t2(id,comment) values (1,hoge);

んで、最後にcommitしたらOKです。

こんなもんでよかったでしょうか?

QWebフォームのIMEモードを入力項目毎に自動切替

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにアプリケーション側で制御されるものが大半だと思っておりました。それを聞いてある人は「そんなことはない、世の中の大半のアプリはそんなことを制御していない、「普通」は自分でIMEで制御しながら入力するものだ」、と言っていたので議論になりました。これからウェブサイトを作ろうと思っているので、最終的にはこの議論はアプリ側にそのような実装をするかどうかというところに帰着するのですが、まずは「一般的にどうなのか」というところでご意見を頂きたいと思います。ちなみに、日本のメジャーなサイト(航空会社、ポータル、携帯電話、電気屋)10個でユーザ登録フォームを確認したところ、名前欄をクリックしてもいずれもIMEのモードはひらがなに変更されませんでした。そこで今は友人が正しくて、僕が間違っていたどころか、「そもそも、名前入力時に自動的にひらがなにモード変換されるようなサイトって本当にあるのだろうか。。」というような状態になっております。どなたか、教えてください。よろしくお願いします。

ある人と話していて、議論になったので質問します。世の中にはたくさんのウェブフォームがあって、名前や住所、電話番号などの登録情報を入力することが多々あります。あまり深く考えたことはなかったのですが、私はなんとなく、「名前や住所のテキスト入力時には自動的にIMEの入力モードが日本語(ひらがな)になり、電話番号やメールアドレスのテキスト入力時には英数になる」ものだと思っていました。自分でIMEを操作することなく、テキストフィールドにタブで移動したりもしくはマウスをクリックしたときにア...続きを読む

Aベストアンサー

IMEのON/OFFができるスタイルシート「ime-mode」は、Internet Explorerが独自に追加した仕様で、Internet Explorerでは入力モードが切り替わりますが、その他のブラウザでは保証されません。
http://www.htmq.com/style/ime-mode.shtml

今、確認したところ、IE8はもちろん切り替わり、Firefox 3.6も切り替わりましたが、Google Chromeは切り替わりませんでした。
Opera,Safari,Sleipnir…等は試してません。

大手のサイトでは「より多くのブラウザで表示できること」が求められますので、独自仕様の「ime-mode」を使っているところは少ないのではないでしょうか。
逆に「Internet Explorerしか表示できなくて良い」と割り切ってるサイトや、社内だけに公開するようなページは「ime-mode」が使われていると思います。

Qデーターベースのエクセル抽出、検索で不一致(アンマッチ)抽出の方法を教えてください

https://box.yahoo.co.jp/guest/viewer?sid=box-l-6ttgdaiicjxantthpenxc5gwqi-1001&uniqid=b1586204-ddae-43d0-a193-2e82434823c1&viewtype=detail

https://box.yahoo.co.jp/guest/viewer?sid=box-l-6ttgdaiicjxantthpenxc5gwqi-1001&uniqid=69267f43-df55-40d0-8f71-5a8ba178e76b&viewtype=detail

https://box.yahoo.co.jp/guest/viewer?sid=box-l-6ttgdaiicjxantthpenxc5gwqi-1001&uniqid=5fe8bec5-c81a-4e6d-8bb3-48be8758c919&viewtype=detail

画像のような手順で通常は抽出しています
画像では 愛知県 名古屋市千種区 青柳町 で抽出作業をしています

必ず不一致(アンマッチ)が出ますが、このような抽出作業で不一致(アンマッチ)の抽出方法を教えてください

おねがいします

https://box.yahoo.co.jp/guest/viewer?sid=box-l-6ttgdaiicjxantthpenxc5gwqi-1001&uniqid=b1586204-ddae-43d0-a193-2e82434823c1&viewtype=detail

https://box.yahoo.co.jp/guest/viewer?sid=box-l-6ttgdaiicjxantthpenxc5gwqi-1001&uniqid=69267f43-df55-40d0-8f71-5a8ba178e76b&viewtype=detail

https://box.yahoo.co.jp/guest/viewer?sid=box-l-6ttgdaiicjxantthpenxc5gwqi-1001&uniqid=5fe8bec5-c81a-4e6d-8bb3-48be8758c919&viewtype=detail

画像のような手順で通常は抽出しています
画像では ...続きを読む

Aベストアンサー

ただたんにオートフィルターではいけないのですか?

オートフィルターをかけた状態で
①「都道府県名」で「愛知県」以外のチェックを外す。
├─「(全てを選択)」クリックして全てのチェックを外す。
└─「愛知県」クリックしてチェックを入れる。
②「市区町村名」で「名古屋市千種区」以外のチェックを外す。
├─「(全てを選択)」クリックして全てのチェックを外す。
└─「名古屋市千種区」クリックしてチェックを入れる。
③「大字・町名」で「青柳町」以外のチェックを外す。
├─「(全てを選択)」クリックして全てのチェックを外す。
└─「青柳町」クリックしてチェックを入れる。
④「字・丁目名」で「(空白)」以外のチェックを外す。
├─「(全てを選択)」クリックして全てのチェックを外す。
└─「(空白)」クリックしてチェックを入れる。
これならば入力する手間もかからないですし、漢字の打ち間違いとかもないと思うのですが…

QACCESS フォーム上 テキストボックスを移動するごとに文字の入力モードが戻ってしまう

ACCESSでフォーム上で入力をしています。
テキストボックスを移動するごとに半角英数になってしまい非常に不便です。

テーブルではIME入力モード:ひらがな、IME返還モード:一般としています。
テーブルのデザインビューの状態では指定している通りのひらがなで入力できるのが、フォームになると半角英数の状態です。
フォームのプロパティから何か設定を変更しなければいけないのでしょうか?
よろしくお願い致します。

Aベストアンサー

maigo-no-konekoさん
ACCESS2000では次の機能があります。
テーブルの項目定義のIMEの設定内容が引き継がれる仕様なのか
否か不明ですが、フォームの定義画面でテキスト項目やコンボボックス
など入力項目毎に指定します。
(ただし、シフトキーを押しながらマウスクリックすることで
複数選択できます)

1)テキストポックスのプロパティ画面を呼び出します。
2)その他 タブにIME関連の項目があります。
  IME入力モード保持 直前に入力した項目のIMEの入力設定
  状態を引き継ぐ場合は「はい」にします。直前の入力項目の
  設定によらない場合は「いいえ」にします。
  IME入力モード オンまたはひらがな等にします。
           ここでご希望の入力方法を選択します。
  IME変換モード 一般(人名や地名などを入力す場合は
  人名/地名)にします。

QACCESS クエリの抽出項目をEXCELから

Access2000のクエリの抽出項目をExcel2013の内容を抽出項目として指定するにはどうすればよいでしょうか。

Excelには、
佐藤
田中
鈴木
.........
のように縦に名前が最大18名分入っています。

この(最大)18名の名前をAccessの抽出項目とします(フィールドは10あってその6番目に抽出項目を18名分入力したいのです)。
18名を一人一人コピペしていたのですが、何とか簡素化できないものかな?と思っています。

できれば、マクロで一発で抽出項目を貼り付けたいのですが。
よろしくお願いします。

Aベストアンサー

#7です

修正量がそう多くなかったので回答してみます。

修正点
・ハイパーリンクしない
・出来上がるシート名は「1R」「2R」・・・「xR」
・抽出内容が無くてもシートは初期化する
・騎手名は C1 から始まり、終了は空白が2行続いたら
 (24 に限定せず、書かれていた分を処理する)


Public Sub Samp2()
  Dim cn As Object, rs As Object
  Dim sSql As String, sS As String
  Dim v As Variant
  Dim iRow As Long, iRowN As Long, iR As Long
  Dim i As Integer
  Const adStateOpen = 1
  Const PN2007 As String = "Microsoft.ACE.OLEDB.12.0"
  Const PN2003 As String = "Microsoft.Jet.OLEDB.4.0"
  Const CMDB As String = "\2014.mdb"
  Const CSQL = "SELECT * FROM 2014 WHERE 騎手名 IN ('{%1}');"

  On Error Resume Next
  Set cn = CreateObject("ADODB.Connection")
  For Each v In Array(PN2007, PN2003)
    cn.Open "Provider=" & v _
      & ";Data Source=" & ThisWorkbook.Path & CMDB
    If (cn.State = adStateOpen) Then Exit For
  Next
  If (IsEmpty(v)) Then
    MsgBox "環境不足で処理中断", vbCritical
    Set cn = Nothing
    Exit Sub
  End If
  On Error GoTo 0

  Application.ScreenUpdating = False
  With Worksheets("SheetDB")
    iR = 1
    iRow = 1
    While (.Cells(iRow, "C") <> "")
      iRowN = iRow
      With .Cells(iRow, "C")
        If (.Offset(1) <> "") Then iRowN = .End(xlDown).Row
        v = WorksheetFunction.Transpose(.Resize(iRowN - iRow + 1))
      End With
      If (IsArray(v)) Then
        sSql = Replace(CSQL, "{%1}", Join(v, "','"))
      Else
        sSql = Replace(CSQL, "{%1}", v)
      End If

      sS = iR & "R"
      For Each v In Worksheets
        If (v.Name = sS) Then Exit For
      Next
      If (IsEmpty(v)) Then
        With Worksheets.Add(After:=Worksheets(Worksheets.Count))
          .Name = sS
        End With
      Else
        v.Activate
        Cells.ClearContents
      End If

      Set rs = cn.Execute(sSql)
      If (Not rs.EOF) Then
        With Range("A1")
          For i = 0 To rs.Fields.Count - 1
            .Offset(, i) = rs(i).Name
          Next
          .Offset(1).CopyFromRecordset rs
        End With
      End If
      rs.Close
      Set rs = Nothing
      iRow = iRowN + 2
      iR = iR + 1
    Wend
    .Activate
  End With
  cn.Close
  Set cn = Nothing
  Application.ScreenUpdating = True
End Sub

#7です

修正量がそう多くなかったので回答してみます。

修正点
・ハイパーリンクしない
・出来上がるシート名は「1R」「2R」・・・「xR」
・抽出内容が無くてもシートは初期化する
・騎手名は C1 から始まり、終了は空白が2行続いたら
 (24 に限定せず、書かれていた分を処理する)


Public Sub Samp2()
  Dim cn As Object, rs As Object
  Dim sSql As String, sS As String
  Dim v As Variant
  Dim iRow As Long, iRowN As Long, iR As Long
  Dim i As Integer
  Const adStateOpen = 1...続きを読む

QAccess フォームのテキストボックスに半角英字のみで入力する設定は

IME入力モードをテーブル・フォームともオフにしたのですがひらがな入力モードになってしまいます。
フォームのテキストボックスに半角英字のみで入力する設定としてプロパティのIME入力モードをオフにするやり方自体が間違っているのでしょうか。
それともATOKを使っているなど利用するパソコン側の問題でしょうか

Aベストアンサー

IME入力モードを「使用不可」にしましょう。

Qある項目が最小の行だけを抽出する方法

以下のデータから、t_stampが一番古いidだけを取得
したいのですが、order by t_stampを使わずに8を抽出する方法はありますか?

id t_stamp host
5 20010501 yahoo.co.jp
8 20010427 google.co.jp
7 20021111 goo.ne.jp

Aベストアンサー

select id from xx where t_stamp in (select Min(t_stamp) from xx);

ではいかがですか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング