• ベストアンサー
  • 困ってます

アクセスのフォームでデーター入力用の一覧をだすために,VBAを使いまし

アクセスのフォームでデーター入力用の一覧をだすために,VBAを使いました。 最初はORDER以降がなくWHEREからの()もなくて,組ID="&Me.C組で動いていたのですが,番号で昇順にする必要ができて,以下のように書くと一覧が表示できなくなりました… 書き方に間違いがあると思うんですが,初心者のためわかりません… どなたかご教授お願いいたします。 Private Sub Form_Open(Cancel As Integer) Me.生徒氏名.RowSource = "SELECT T_生徒.生徒ID, T_生徒.組ID, T_生徒.組, T_生徒.番号, [姓]+[名] AS 生徒氏名, T_生徒.性 FROM T_生徒 WHERE (((組ID) = & Me.C組)) ORDER BY T_生徒.番号 acs" End Sub

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数89
  • ありがとう数8

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

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

Me.生徒氏名.RowSource = "SELECT T_生徒.生徒ID, T_生徒.組ID, T_生徒.組, T_生徒.番号, [姓]+[名] AS 生徒氏名, T_生徒.性 FROM T_生徒 WHERE T_生徒.組ID = " & Me.C組 & " ORDER BY T_生徒.番号 asc" で、どうでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。解決しました。勉強になりました。今後に役立てます。

関連するQ&A

  • Access フォームでの並べ替え OrderBy

    いつもお世話になっています。 フォームで「製品ID」が昇順に並べ替えられるよう下記のイベントを 設定しましたが、上手くいきません。 Private Sub Form_Open(Cancel As Integer) Me.OrderBy = "製品ID" End Sub お力添えよろしくお願いいたします。

  • 値集合ソースの切替をVBAで

    あるフォームを、「開き方によって、フォーム上のコンボボックスの値集合ソースを切替える」のをVBAでやりたいのですが、 Private Sub Form_Open(Cancel As Integer) If Me.OpenArgs = "A" Then Me!氏名検索.RowSource = "SELECT 講師.氏名, 講師.フリガナ, 講師.ランク FROM 講師 WHERE (((講師.ランク) = Like '*A'))ORDER BY 講師.フリガナ;" ElseIf Me.OpenArgs = "B" Then Me!氏名検索.RowSource = "SELECT 講師.氏名, 講師.フリガナ, 講師.ランク FROM 講師 WHERE (((講師.ランク) =Not Like '*A'))ORDER BY 講師.フリガナ;" End If End Sub (実際は折り返していません) とすると、コンボボックスをクリックした時にエラーとなり クエリ式'(((講師.ランク)= Like '*A'))'の構文エラー:演算子がありません。 と表示されます。間違い箇所を教えて下さい。

  • アクセスVBA コンパイルエラー

    フォームを開いた時にフォームの高さを設定したいので Private Sub Form_Open(Cancel As Integer) Me.Height = 12000 End Sub としてるのですが「.Height =」の部分がコンパイルエラーになってしまいます。 何がいけないのでしょうか?

その他の回答 (2)

  • 回答No.3
  • layy
  • ベストアンサー率23% (292/1222)

>書き方に間違いがあると思う そこに着目していながら先へ進めないのは確認の仕方がわからないってこと?。 確認の仕方がわからなければ、 また同じように行き詰ったら質問しなければ先へ進まないってことになり、 答えだけ聞いて終わらせるやり方は考えることしないので、あまりお勧めしません。 1)Me.生徒氏名.RowSource に文法誤りのない状態のSQLでできているか、確認。 2)SQLが問題ないなら、 実行させている箇所を確認。 「できない」ってことはそこが実行されていないこともある。 FORM_OPENであっているか。FORM_LOADとの違いを確認。 3)「RowSource」を変えるだけでいいのか。 使い方が間違っていないか確認。 こういう観点でできるところありますか?。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

 ご教授ありがとうございます。いろいろと調べてはみたのですが,文法にまだまだなれてなくて勉強不足でした。

  • 回答No.1

ORDER BY T_生徒.番号 acs じゃなくて ORDER BY T_生徒.番号 asc では?

共感・感謝の気持ちを伝えよう!

質問者からの補足

早速の回答ありがとうございます。 直してみましたが,まだ表示できません… すいません…

関連するQ&A

  • Access フォームから並び替えレポート

    お知恵をお貸しください。 Access2010 フォームでオプショングループを2種類用意しました。 規則グループ 昇順 降順 並び替えグループ ID ふりがな レポートに Private Sub Report_Open(Cancel As Integer) Select Case Forms!フォーム4!fra並べ替え Case 1 Me.OrderBy = "ID ASC" Me.OrderByOn = True Case 2 Me.OrderBy = "ふりがな ASC" Me.OrderByOn = True End Select End Sub 並び替えでは、昇順のみうまくレポートを行えますが。 規則で ID ふりがな を昇順 降順 に行えません。 なにを加えればよいのでしょうか。 よろしくお願いします。

  • アクセス レポート バックカラーの変更方法

    現在レポートで1行ごとにバックカラーを変えて印刷しておりますが、それをチェックボックスにチェックがはいった行だけをカラーにするよう変更したいと考えておりますが、よくわかりません。現在のコードをコピーしました。お手数ですがご指導願います。 Option Compare Database Dim bline As Integer Private Sub Report_Open(Cancel As Integer) End Sub Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) bline = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) bline = bline + 1 If bline Mod 2 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 12663225 End If End Sub

  • フォームのデータシートビューにてVBAで直接記述したSQL文を実行した結果を返すことは不可能でしょうか?

    リストボックス、コンボボックスなら Private Sub Form_Open(Cancel As Integer) With Form_フォーム1.リスト2 .RowSourceType = "Table/Query" .RowSource = "SELECT テーブル.フィールド, FROM テーブル" End With End Sub で結果を返すことは可能なのですが フォームをデータシートとして Private Sub Form_Load() Me.RowSourceType = "Table/Query" Me.RowSource = "SELECT テーブル.フィールド, FROM テーブル" End Sub とするのは不可能ですか? これを実行すると 「コンパイルエラー メソッドまたはメンバーが見つかりません」 となり、 「RowSourceType =」が選択されます。 そしてVBAの停止の意の四角ボタンを押すとユーザーフォームが図のようになります。 私のやりたいことは、クエリではなくVBAでSQL文を書き、データシートビューで表示させたいのですがやはり不可能でしょうか? (変数を代入できるため) 何でもいいのでご教授よろしくお願いします。

  • アクセスのレポートで3つの条件で並べ替えたいのですが(汗)

    皆さん こんばんわ いつもお世話になります。今日は、下記の構文に追加するなどしてレポートの並べ替えをしたいのですが、判りません。教えていただけたら嬉しいです。 以下  棚番号 枝番 小枝 の名前を付けたロケーション番号(3桁の数字)(棚番号 101 枝番 20 小枝 4)といった具合に割り振ったのですが印刷の時番号順に並べ替えがしたいです。簡単にできそうな気もするのですがよくわからないので教えていただきたいです。宜しくお願いいたします。 ちょっと本に載っていた構文を書きましたがもっと他にも有るようでしたらそう言うものでも良いです。 宜しくお願いいたします。 Private Sub Report_Open(Cancel As Integer) Dim stKey As String stKey = InputBox("昇順で並べ替えるキーを入力してください") Me.OrderBy = stKey Me.OrderByOn = True End Sub

  • アクセス2003でカレンダーコントロールを挿入し、フォームの開くときイ

    アクセス2003でカレンダーコントロールを挿入し、フォームの開くときイベントに、 Private Sub Form_Open(Cancel As Integer) Me.Calendar7.Visible = True Me.Calendar7.Value = Date End Sub と記述しても、当日の日付が表示されません。 原因がわからないのでどなたか教えてください。

  • アクセスのフォームで

    アクセスのフォームで、品番一覧というテーブルを基にした、F品番一覧というフォームがあります。 ヘッダー部に検索するコンボボックスがあり、品番一覧テーブルの品番を参照しています。 検索ボタンを押すと、コンボボックスの内容に当てはまるものが、フォームの詳細部に一覧として表示させる様にしたのですが、品番に"50#1"や"50#2"という#を使い、1と2を分けている物があるのですが、コンボボックスで、この#が付いた物で検索すると検索結果がなにも表示されません。#が付いていない物はちゃんと一覧が表示されます。 #が付いている場合でもちゃんと表示するにはどの様にしたら良いですか?テーブル側の#を取り除く事はできません。 検索ボタンのコードは Private Sub 検索_Click() Dim strFilter As String, strExp As String, aryOpe As Variant If Not IsNull(Me.txt氏名) Then strFilter = strFilter & " AND 品番 Like *" & Me.品番一覧 & "*" End If Me.Filter = Mid(strFilter, 5) If strFilter = "" Then Me.FilterOn = False Else Me.FilterOn = True End If となっています。 うまく説明できなくてすいませんが、誰か教えて頂けませんか? よろしくお願いします。 End Sub

  • ExcelVBA:フォームの閉じるボタン「×」を消す方法

    ExcelVBAで、ユーザーフォームの閉じるボタン「×」を使用できなくなる方法は以下のコードで教わったのですが「×」自体消す方法ってあるでしょうか? Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = 0 Then Cancel = 1 End Sub 回答よろしくお願いします。

  • アクセスのレポート、VBAで罫線を引く方法

    初心者です。いろいろ調べてみて、ここまでたどりつきましたが(どなたかの質問を参考に)、これ以上わからなくなったのでこちらに投稿しました。 Private Sub 詳細_Print(Cancel As Integer, PrintCount As Integer) Me.ScaleMode = 1 Me.ForeColor = 0 '一番左の縦線 Me.Line (0, 120)-(0, 6680) End Sub 上記のコードで、罫線を引く方法はわかりました。ただ、私がやりたいことは、全てのレコードに対して線を引く方法でなく(それであれば、VBAを使うほどでもないので)、特定の位置に線を引く方法なのです。 もっとわかりやすく言うと、A4用紙に2つのレコードが印刷されるレポートになっております。その2つのレコードの真ん中に、いつも線を引く、ということをさせたいのです。 (要するに、切り取り線です) このような場合、どうしたら可能になるか、どなたかヒントをいただけないでしょうか。

  • アクセスの"検索"について

    いつもお世話になっています。 Accessのフォームにて、任意の郵便番号をテキストボックス(1)に入力し"検索ボタン"を押すと、 該当する住所がフォーム上のリストボックス(2)に一覧が表示され、 その中から任意の番号を1件選んで新たなテキストボックス(3)へ代入出来る、というようなシステムを作りたく考えております。 郵便番号は"郵便番号一覧"というテーブルにまとめており、 加えてクエリ( "Q_郵便番号")で郵便番号、住所等の項目を連結しています。(フォームも作成済みです) ただ、現在"検索ボタン"を押すと、全郵便番号が検索され、 もちろん郵便番号を選択するような事も出来ない状態で、構文作りに難航しています。 アイディアをお持ちの方、構文の作成についてご指南頂けますと幸いです。 現在、作成途上のVBAは下記の通りです。 Private Sub Form_Open(Cancel As Integer) 'リストボックスのプロパティの設定 With Me.(2) .RowSourceType = "Table/Query" .ColumnCount = 5 .ColumnWidths = "2.5cm;2cm;4.5cm;15cm" .BoundColumn = 1 .RowSource = "" End With Me.郵便番号検索.SetFocus End Sub Private Sub 検索ボタン_Click() '住所の検索 Me.(2).RowSource = "Q_郵便番号" Me.(2).Requery End Sub

  • アクセスのVBについて

    先ほど立てたものですが、第二段です。先ほどは詳しい説明ありがとうございした。しかし、【Private Sub form_open(Cancel AS Integer)】のCancelの使い方が今一分りません。下の文を見ていただきたいのですが、 ★[F_顧客]フォームでは、OPENARGS引数で受け取った値を利用して、フォーム の[票題]プロパティを変更する処理を行います。 Private Sub form_open(Cancel AS Integer)  'OPENARGSプロパティによって[標題]プロパティを変更    Select Case Me.OPENARGS   Case "追加"    ME.Caption="F_顧客(追加モード)"     Case "編集"    ME.Caption="F_顧客(編集モード)"     Case Else    ME.Caption="F_顧客"  End Select End Sub 例えば、上記の場合などはなぜキャンセルが必要なのでしょうか・・・。 初心者のため、どなたか細かくご説明いただければたすかります。 m(__)m