Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


447 / 500 ページ ←次へ | 前へ→

【4226】Re:コンボボックスへのセット方法
質問  Aiz  - 05/1/20(木) 17:35 -

引用なし
パスワード
   ▼クロ さん:
>"SELECT 名前 FROM 出力テーブル WHERE 出力対象=1 ORDER BY 表示順;"
>ではないでしょうか?
そうです。こちらのほうです。
criteria = "SELECT NMテーブル名 FROM Sマスタ情報管理 WHERE CF出力対象=1 ORDER BY NO表示順;"

ctiteriaには条件式が格納されているんですが、なぜか表示されません。
イベントはフォームロード時です。
・ツリー全体表示

【4225】Re:コンボボックスへのセット方法
回答  クロ  - 05/1/20(木) 17:25 -

引用なし
パスワード
   criteria = "SELECT 名前 FROM テーブル名 WHERE 出力対象=1 ORDER BY 表示順;"

このSQL文のまま?
"SELECT 名前 FROM 出力テーブル WHERE 出力対象=1 ORDER BY 表示順;"
ではないでしょうか?

出力テーブル内に出力対象が「1」のものがあれば
Me.コンボボックス名.RowSource = criteria
Me.コンボボックス名.Requery
※コンボボックス名は正規のものに変えてください。

で入るはずですけど...
ちなみにどのイベントで書いているのでしょうか?
・ツリー全体表示

【4224】Re:コンボボックスへのセット方法
質問  Aiz  - 05/1/20(木) 17:17 -

引用なし
パスワード
   ▼クロ さん:

レスありがとうございます。
このソースで実行してみたところ実行後のコンボボックスにはデータが入っていませんでした。
いろいろ試してみたんですが、どれも値が入らず...。

>Me.コンボボックス名.RowSource = criteria

の、ctiteriaのところを直にテーブル名で指定すれば表示されるんですが、それだと意味がないので。。。^^;
・ツリー全体表示

【4223】Re:コンボボックスへのセット方法
発言  クロ  - 05/1/20(木) 16:34 -

引用なし
パスワード
     If RS.RecordCount = 0 Then
    Call showError("現在、出力可能なマスタ情報は存在しません。")
    Exit Sub
  Else
    Me.コンボボックス名.RowSource = criteria
    Me.コンボボックス名.Requery
  End If
でいいのでは?
・ツリー全体表示

【4222】コンボボックスへのセット方法
質問  Aiz  - 05/1/20(木) 15:07 -

引用なし
パスワード
   ▼クロ さん:
ありがとうございます。おかげさまで抽出のほうは上手くいきました。

便乗の質問なんですが、この抽出したデータをコンボボックスに設定したいのですが、どうも上手くいきません。
すいません、ご助言のほうよろしくお願いします。

  'コンボボックスに出力対象となる出力テーブル名をセットする処理
  Dim CN As New ADODB.Connection
  Dim RS As New ADODB.Recordset
  Dim criteria As String
   
  '接続
  Set CN = CurrentProject.Connection
  
  'レコードセットを取得
  Set RS = New ADODB.Recordset
  '出力対象フラグが"1"且つ、表示順位の昇順で抽出
  criteria = "SELECT 名前 FROM テーブル名 WHERE 出力対象=1 ORDER BY 表示順;"
  RS.Open criteria, CN, adOpenKeyset, adLockOptimistic
 
  If RS.RecordCount = 0 Then
    Call showError("現在、出力可能なマスタ情報は存在しません。")
    Exit Sub
  Else
    Do Until RS.EOF
      Debug.Print RS!NMテーブル名
      RS.MoveNext
    Loop
  End If

  '終了
  RS.Close: Set RS = Nothing
  CN.Close: Set CN = Nothing
・ツリー全体表示

【4221】Re:はじめまして。
お礼  kana  - 05/1/20(木) 13:52 -

引用なし
パスワード
   ▼クロ さん:
ありがとうございました。
これを参考に頭をもう一ひねりしてみます。
・ツリー全体表示

【4220】Re:はじめまして。
回答  クロ  - 05/1/20(木) 13:31 -

引用なし
パスワード
   TransferSpreadsheet メソッドを使用すれば
AccessのVBAで出来ます。
VBエディタのツールバーの「質問を入力…」に「TransferSpreadsheet」を
入れヘルプを参考にしてください。
希望の感じは同使用例にあります。
・ツリー全体表示

【4219】はじめまして。
質問  kana  - 05/1/20(木) 13:25 -

引用なし
パスワード
   最近VBAを覚えた新米です。
以下の作業がAccessVBAで組めるか教えて頂ければと思います。

(1)データが入っているExcelを開き、データ部分をコピー。
(2)コピー先のAccessデータベースを開く。
(3)データを入れたい空のワークテーブルを開く。
(4)(3)のテーブルに(1)でコピーしたデータを貼り付ける。
・ツリー全体表示

【4218】Re:コンボボックスにテーブルの値をセット...
回答  クロ  - 05/1/20(木) 13:22 -

引用なし
パスワード
   コンボボックスの値集合ソースの欄に
以下のように記述してください。
※出力対象フィールドのデータ型は数値型としてあります。
 コンボに表示するものが「名前」でよければ
 SELECT * を SELECT 名前 としてください。

SELECT * FROM 出力テーブル WHERE 出力対象=1 ORDER BY 表示順;
・ツリー全体表示

【4217】Re:リンクのループ?
お礼  nemotake  - 05/1/20(木) 12:12 -

引用なし
パスワード
   ▼MJM さん:

本当にありがとうございました。
助かりました。
・ツリー全体表示

【4216】コンボボックスにテーブルの値をセットす...
質問  Aiz  - 05/1/20(木) 10:55 -

引用なし
パスワード
   質問があります。
フォームの初期処理時にコンボボックスの中に指定されたテーブルから出力対象となるデータを出力条件に従ってセットする処理です。

出力条件:出力対象フラグが"1"
表示順:昇順

テーブルの中身はこんな感じです。
テーブル名:出力テーブル

 名前     出力対象   表示順
テスト1      1      1
テスト3      1      3
テスト2      1      2
テスト4      2      4

名前を、出力対象が1のものを、表示順の数字を昇順で表示したいのですが、やり方がいまいちわかりません。
どなたかご助言のほうよろしくお願いします。
・ツリー全体表示

【4215】Re:リンクのループ?
回答  MJM  - 05/1/20(木) 9:25 -

引用なし
パスワード
   見落としてました。前RESでの

  'ローカルでのテーブル名でオブジェクトを作成
  Set TD = DB.CreateTableDef(RS![テーブル名])

が、抜けてますね。
・ツリー全体表示

【4214】Re:リンクのループ?
質問  nemotake  - 05/1/20(木) 8:57 -

引用なし
パスワード
   ▼MJM さん:
またまたありがとうございます。早速やってみましたがうまくいきません。
やはりコンパイルでエラーになってしまいます。MJM さんの指摘とうりすうせいしたのでが、どこがおかしいのでしょうか?

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim TD As DAO.TableDef
Dim INRs As Recordset
Dim 読込 As String
Dim 名前 As String

Set Db = CurrentDb
読込 = "日付テーブル"
Set INRs = Db.OpenRecordset(読込,dbOpenDynaset)

名前 = "D:\顧客データ\" & INRs!開始年 & ".mdb"

TD.Connect = ";DATABASE=" & 名前
TD.SourceTableName = RS!顧客テーブル
DB.TableDefs.Append TD   (エラー場所)

INRs.Close
RS.Close
DB.Close
Set TD = Nothing
Set RS = Nothing
Set DB = Nothing

と記述したのですがエラー場所(TableDefsのところにカーソルがきています)
でメソッドまたはデータメンバーが見つかりませんになってしまいます。
宜しくお願いします。
・ツリー全体表示

【4213】Re:サブフォームについて
回答  かろちん  - 05/1/20(木) 0:01 -

引用なし
パスワード
   >1.サブフォームにおいて主フォームのキーを入力しないように
>  するには。
ここと
>  上記のサブフォーム[受付番号]を表示しないように
>  することは可能でしょうか。
ここは矛盾しますが、
サブフォームの受付番号を使用不可にするか、テキストボックス
とラベルを外してしまえば良いかと思いますが。


>2.サブフォームの行数を規制したい
>
>  サブフォームを1〜n(入力できる行数)に
>  するにはどのようにすればよいでしょうか。

 規制するとは、ある一定量入力するとそれ以上入力できなくする
 ということでよいでしょうか?

 そうしたいのであれば、行数をカウントしその行数が一定量に
 なったら、AllowAdditionsプロパティをFalseにしてやれば
 追加行が出なくなります。
・ツリー全体表示

【4212】Re:DCountでファイルの有無を調べる方法
回答  かろちん  - 05/1/19(水) 21:31 -

引用なし
パスワード
   私はこんな方法でやってます。


  Dim i        As Long
  Dim strTableName  As String
  Dim strName     As String

  strName = Forms!F_メインメニュー1!txtテーブル名
  For i = 0 To CurrentData.AllTables.Count - 1
    strTableName = CurrentData.AllTables(i).Name
    If strName = strTableName Then
      DoCmd.DeleteObject acTable, strTableName
      Exit For
    End If
  Next i


気になることがあります。間違っていたらごめんなさい。
 何度も、消したり書いたりしました。
 ここの掲示板は、管理人さんのご好意(趣旨)でマルチポストは
 禁止となっておりませんので、マルチポストはしても良いことに
 なっていますので問題はありませんが、向こうは問題がありそう
 です。

 この掲示板もマルチポストは全てOKではなく条件があります。
 この掲示板の上の方に「マルチポストに関して、主宰者の意見を
 まとめました」の横の「ここ」をクリックして、議論された内容
 を読んでおいてください。
・ツリー全体表示

【4211】Re:コンボボックス選択時の処理
お礼  Aiz  - 05/1/19(水) 17:57 -

引用なし
パスワード
   ▼MJM さん:
ありがとうございます。
無事問題解決できました。

また何かありましたらよろしくお願いします。
・ツリー全体表示

【4210】DCountでファイルの有無を調べる方法
質問  はな  - 05/1/19(水) 17:50 -

引用なし
パスワード
   フォームから、新規で作成したいテーブル名を入力して
新規でテーブルを作成したいのですが
もしも、同名前が存在した場合、存在するテーブルを削除し
新規にて、テーブルを作成したいのですが。

If DCount("*", "MSysObjects", _
  "Name='" & Forms!F_メインメニュー1!txtテーブル名 & "' And Type=1") > 0 Then

  MsgBox ("あった")
  
   Set cat = New ADOX.Catalog
   cat.ActiveConnection = CurrentProject.Connection

  
   cat.Tables.Delete fname
  
  End If

  Set cat = Nothing

上記の様に書いてみましたが、構文エラーになってしまいます。
詳しく分かる方、教えて下さい。
・ツリー全体表示

【4209】Re:コンボボックス選択時の処理
回答  MJM  - 05/1/19(水) 17:38 -

引用なし
パスワード
   こんにちは。

クリック時イベントではなく、
更新後処理イベントの方がよろしいのでは?

Private Sub CMD_TEST1_AfterUpdate()

  Select Case CMD_TEST1
    Case "あああ"
    ’ここでテキストボックスを非活性にする処理を行う。
    Case "いいい"
    ’ここでテキストボックスを非活性にする処理を行う。
    Case "ううう"
    ’ここでテキストボックスを非活性にする処理を行う。
  End Select

End Sub
・ツリー全体表示

【4208】Re:リンクのループ?
回答  MJM  - 05/1/19(水) 17:30 -

引用なし
パスワード
   >名前 = "D:\顧客データ\" & INRs!開始年 & ".mdb"

日付テーブルの開始年というフィールドに格納されている値を
データベースをリンク先とする
という事でしょうか?

>TD.Connect = ";DATABASE=名前"
TD.Connect = ";DATABASE=" & 名前

ですね。

TD.Connect = ";DATABASE=D:\顧客データ\" & INRs!開始年 & ".mdb"
として、1行でもいいですね。
・ツリー全体表示

【4207】Re:リンクのループ?
質問  nemotake  - 05/1/19(水) 17:07 -

引用なし
パスワード
   ▼MJM さん:
ありがとうございます。早速やってみましたがうまくいきません。
リンクだけのモジュールを作ってみましたがコンパイルでエラーになってしまいます。
どこがおかしいのでしょうか?

Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim TD As DAO.TableDef
Dim INRs As Recordset
Dim 読込 As String
Dim 名前 As String

Set Db = CurrentDb
読込 = "日付テーブル"
Set INRs = Db.OpenRecordset(読込,dbOpenDynaset)

名前 = "D:\顧客データ\" & INRs!開始年 & ".mdb"

TD.Connect = ";DATABASE=名前"
TD.SourceTableName = RS!顧客テーブル
DB.TableDefs.Append TD   (エラー場所)

INRs.Close
RS.Close
DB.Close
Set TD = Nothing
Set RS = Nothing
Set DB = Nothing

と記述したのですがエラー場所でメソッドまたはデータメンバーが見つかりませんになってしまいます。
宜しくお願いします。
・ツリー全体表示

447 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1084751
(SS)C-BOARD v3.8 is Free