TreeViewの質問:access2007でvbで開発したシステムをTreeViewに乗せ換えたい

このQ&Aのポイント
  • 質問1: TreeViewのMouseMoveイベントで定数「vbLeftButton」を読み取る方法は?
  • 質問2: TreeViewコントロールで参照できないプロパティは?
  • TreeViewの質問:access2007でvbで開発したシステムをTreeViewに乗せ換えています。質問1では、TreeViewのMouseMoveイベントで定数「vbLeftButton」を読み取る方法について尋ねています。質問2では、TreeViewコントロールで参照できないプロパティについて尋ねています。
回答を見る
  • ベストアンサー

TreeViewの質問です(access)

<環境>access2007 vbで開発したシステムをaccessに乗せ換えています。 そこで質問が2点あります。 (1)定数を読み取るには?  TreeViewのMouseMoveイベントで If Button = vbLeftButton Then  としたいのですが、コンパイルエラーとなります。エラー:変数が定義されていません。  「vbLeftButton 」の定数を読み取るにはどうすればいいのでしょうか?  参照設定でしょうか? (2)TreeViewのプロパティが参照できない  TreeViewコントロールで以下のプロパティが参照できません。  こちらも参照設定でしょうか?  ・TreeViewオブジェクト.DragIcon  ・TreeViewオブジェクト.Drag  ・TreeViewオブジェクト.DropHighlight よろしくお願いします。

noname#208236
noname#208236

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

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

VBではDragIconおよびDragによってドラッグするアイコンを 設定できますが、Accessで使用するTreeViewにはこの機能が 搭載されていません。したがってプロパティも存在しません。 No1で、 >一般的には >AccessでのTreeviewはVB6での処理方法を >あてはめることができます。 としましたが、すべて可能ではありません。 VBでもDragおよびDragIconの代わりに、APIや構造体 を使って同じような機能を設定できますが(コード量が大変)、 Accessで同様のことができるかは確認していません。 Accessで使用できる一般的なDrag&Dropは、No1の マイクロソフトの方法や、たとえば以下のサイトの サンプルあたりがAccessでできることだろうと 思いますが。 http://www.tsware.jp/study/vol10/comctl_05.htm この機能は特に必要でないならば、Accessで可能な TreeViewにまつわる他の機能を拡張するようにしたほうがいいのでは、 と思いますが。

noname#208236
質問者

お礼

大変返事がおそくなりました。 結局ドラッグはできたのですが、クリック時のアイコンの変更は できませんでした。 TreeView.DragIcon = のところが… 残念ですがあきらめることに…

その他の回答 (1)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

VBのバージョンはわかりませんが、一般的には AccessでのTreeviewはVB6での処理方法を あてはめることができます。 (1) >If Button = vbLeftButton Then If Button = acLeftButton Then (2) まずは以下を参照してください。(ドラッグ&ドロップなど) http://support.microsoft.com/kb/165993/ja なお、マウスポインタの変更については http://www.nurs.or.jp/~ppoy/access/access/acEt014.html

noname#208236
質問者

お礼

ありがとうございます。 ドラッグ&ドロップについてですが、もう一度教えてください。 以下のコードでエラーが出て前に進めません。 何が悪いのでしょうか? Private Sub TreeMain_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Long, ByVal y As Long) If Button = acLeftButton Then TreeView.DragIcon = TreeMain.SelectedItem.CreateDragImage TreeView.Drag acBeginDrag End If End Sub

noname#208236
質問者

補足

すみません。 エラーの内容を書いていませんでした。 「オブジェクトは、このプロパティまたはメソッドをサポートしていません。」 以下の両方ともaccessではサポートされていません。 どうしたらよいでしょうか? TreeViewオブジェクト.Drag TreeViewオブジェクト.DragIcon

関連するQ&A

  • コードで参照設定をする方法

    VBのコード内で、オブジェクトへの「参照設定」をさせる方法を教えていただけませんでしょうか。 目的は、自分のコンピュータでは参照設定してあるオブジェクトでも、ほかのパソコンではされていると限らないため、アプリ(実際はエクセルブック)の起動時に参照設定を強制したい。参照設定がないと、そのオブジェクト変数の宣言文がコンパイルエラーとなってしまいますよね・・・。 VBAのヘルプによればこちらのメソッド(object.AddFromGuid(guid, major, minor) As Reference)を使うといいような気がするのですが、参照設定したい先(具体的には「Microsoft Scripting Runtime(scrrun.dll)」)の「GUID」がわかりません。レジストリを探さないといけないのでしょうか・・・。探し方がわかりません。

  • 実行時エラーについて

    お世話になっています。教えて下さい。 VBで作ったプログラムです。 デバッグ時には何の問題もなく、実行可能(完全コンパイル後に実行)で、コンパイルも問題なく通りますが、EXEにして実行すると、以下のエラーが出ます。 実行時エラー:'91' object変数、またはwithブロック変数が設定されていません。 どなたか、原因に心当たりがある方、いらっしゃったら教えて下さい。 よろしくお願いします。

  • Access2000 でのコンパイルエラーについて

    Access2003で修正しているプログラム(元は、別の担当者が作ったプログラム)を Access2000が入っている端末で動かしたいのですが、 コンパイルエラーが出て、原因が分かりません。 プログラムは、EXCELを出力する処理を追加し、 Microsoft Excel 11.0 Object Library を参照するようにしました。 これが、Access2000の端末にコピーすると参照不可になっていたため、チェックをはずし、 Microsoft Exce 9.0 Object Library にチェックを入れました。 参照はできるようになりましたが、 「コンパイルエラー:引数の数が一致していません。または不正なプロパティを指定しています。」 というエラーがとれません。 データベースユーティリティでのデーターベースの変換が必要なのかと思いましたが、 Access2000がグレーになっているため、もともとはAccess2000だったのか、 変換の必要はなさそうです。 コンパイルエラーをとる方法を教えていただきたいです。

  • Application.Wait の参照設定

    VBで初歩的な質問です。 「Application.Wait」を使いたいのですが、 「変数がていぎされていません」 コンパイルエラーになってしまいます。 調べてみたら、参照設定を追加するようなのですが、 どれなのかわかりません。 ご存知のかた教えてください。 よろしくお願いいたします。

  • VBからACCESS

    VBからACCESSをオープンしようとした時   メソッドまたはデータメンバが見つかりません。 というエラーが出ます。 参照設定で参照するモジュールを教えて下さい。

  • ACCESSのVBAについて

    アクセスのVBAでdatebaseやRecordsetが宣言できません。ヘルプでは【参照設定】でDate Access Objectをオンに指定ない場合は認識されずエラーになります と書いており、参照設定を見たのですがDate Access Objectという欄がありません、どうしたら宣言することができますか? 例)Dim db As Database Dim rsDate As Recordsetこれらがエラーになる。 大変困っています。ちなみにAccess2000です。

  • ACCESSで、エラーがでる。

    よろしくお願いします。 ACCESS2000を使っています。 レポートウィザードを使って、レポート作成のとき、印刷形式選択の所で、決まってエラーがでます。 そのエラーとは、「オブジェクト変数またはwithブロック変数が設定されていません」と出ます。 これは、一体どのような意味でしょうか。 バグなのでしょうか。

  • Access2000でTextBox変数の代入

    Access2000でTextBox変数を作成し、条件に応じて フォーム上に配置した2つのテキストボックスをその変数に代入したいのですが、うまくいきません。 Public tBox as TextBox If i = 1 Then Set tBox = テキスト1 ElseIf i = 2 Then Set tBox = テキスト2 End if ※ テキスト1、テキスト2はフォーム上に配置した テキストボックスの名称 このコードを実行すると、テキスト1は テキスト1.Textと解釈され、Textプロパティに何も設定 されていない場合、tBoxにはNULLが代入されます。 Textプロパティの値ではなく、テキストボックスオブジェクトそのものを変数に代入するにはどうすればよいのでしょうか。 ご教授お願いします。 環境は OS:Windows2000 Professional   Access2000 です。

  • Access 参照設定について

    いつもお世話になっております。 Accessのイベント処理で visualBasicを使い処理しようとしています。 isloaded関数を使いたいのですが、 コンパイルエラーとなります。 ↓ SubまたはFunctionが定義されていません。 いろいろ調べた結果、 参照設定がなされていないようで、 isloaded関数が 'プロパティ/メソッドの一覧'に 表示されていない状況です。 ご教授宜しくお願いします。

  • TreeViewのスクロール制御

    VB6でTreeViewコントロールのスクロールをプログラム側から制御する物を作っているのですが分からなくて困っています。 TreeViewでNodeが増えれば自動的に表示されるスクロールバーは表示をしないように「Scrollプロバティ」にFalseを入力してSendMessageで下記の方法で行ったのですがスクロールしません。 Private Sub Command1_Click() Call SendMessage(TreeView1.hwnd, WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, sPos), 0) End Sub Private Function MAKEWPARAM(LOWWORD As Long, HIWORD As Long) As Long MAKEWPARAM = (LOWWORD And &HFFFF&) Or (HIWORD * &H10000) End Function 「Scrollプロパティ」にTrueを設定すると問題なくできるのですが、どなたか分かる方がいましたら宜しくお願い致します。

専門家に質問してみよう