VB2005のデータテーブルFillについて

このQ&Aのポイント
  • VB2005でのデータテーブルFillの使い方について質問します。
  • データソースウィンドウからデータテーブルをドラッグ&ドロップすると自動で生成されるコードについて疑問があります。
  • 自動生成コードの「Me.」を削除して使うことに何か支障はあるのでしょうか?
回答を見る
  • ベストアンサー

VB2005のデータテーブルFillについて

いつもお世話になります。 VB2005で開発しています。素朴な疑問なんですが、 Form1にデータソースウィンドウからデータテーブルをドラッグしてはりつけると、 'TODO: このコード行はデータを 'DataSet1.test' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.testTableAdapter.Fill(Me.DataSet1.test) と、自動でコードが生成されますが、「Me.」って必ずいるのでしょうか? 参考書を見てみると、データを呼び込むコードが testTableAdapter.Fill(DataSet1.test) となっており、「Me.」がありませんでした。 自動で生成されたコードの「Me.」を削除して使うと何か支障があるのでしょうか?

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

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

一般的には削除しても問題ないですよ。 Me は「自分自身」て意味ですから、Form1 クラスのコードで Me って書いてある場合は、「このフォームの」って言うふうに修飾してるだけです。 Me. に続いて書かれているオブジェクトはクラスのフィールドとして宣言されているオブジェクトです。 削除して問題になるとすれば、Form1 のフィールドで宣言してるオブジェクトと同じ名前のオブジェクトをプロシージャの中でも宣言してる場合でしょうかね。 Form1 の hoge なのか、このプロシージャの中で作られている hoge なのかを区別できないので、Form1 の hoge を Me.hoge って書く。ってな感じ。 まぁそんなオブジェクトの使い方をするんだったら、最初からオブジェクト名が被らないように名前を付ければいいだけのことですけどね。

toma-to
質問者

お礼

回答ありがとうございました。 特に削除しても問題ないのですね。 あってもなくても動作していたので何が違うのか?と思っていました。 わかってすっきりしました。

関連するQ&A

  • VB.NET MDB(Access 2002) が更新されない

    簡単に作ったプログラムで MDB形式(Access) に用意したテーブル をTableAdaper でVB.netが自動生成したプログラム を実行してみたところ うまく更新されません。   参考:URL http://oshiete1.goo.ne.jp/qa1304483.html 他の方法をいろいろ試したがダメでした。 下記は二つの項目を画面に配置して自動生成されたものでs。 自分で書いたコードでOledbDataAdpter も実験してみたのですが結果は同じです。 メモリー上では更新されますが 物理的にはUpdateがされません。 一旦、画面をとじて開くと更新されていません。 なぜでしょうか? SQL Server ではこんなことはおきませんでした。 __________________________________________________________ Public Class TESTfm Private Sub TBL_交信記録BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TBL_交信記録BindingNavigatorSaveItem.Click Me.Validate() Me.TBL_交信記録BindingSource.EndEdit() Me.TBL_交信記録TableAdapter.Update(Me.QSO_LOG_DATASET.TBL_交信記録) End Sub Private Sub TESTfm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: このコード行はデータを 'QSO_LOG_DATASET.TBL_交信記録' テーブルに読み込みます。必要に応じて移動、または削除をしてください。 Me.TBL_交信記録TableAdapter.Fill(Me.QSO_LOG_DATASET.TBL_交信記録) End Sub Private Sub TESTfm_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed MAINMENU.Visible = True End Sub End Class ____________________________________________

  • データの呼び出し

    自分のプロフィール等をデータベースに記録するソフト作りで、まず簡単に「自分の名前」を書き込んだりそれを読みだすだけのものを作ろうと思ってます。 市販の本を参考にトライしている最中ですが、断念しかけています。 「Table1」はテーブルのnameです。 ______ Public Class Form1 Private Sub Table1BindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Table1BindingNavigatorSaveItem.Click Me.Validate() Me.Table1BindingSource.EndEdit() Me.TableAdapterManager.UpdateAll(Me.Database1DataSet) End Sub _____ Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Table1TableAdapter.Fill(Me.Database1DataSet.Table1) End Sub ____ Private Sub BindingNavigatorAddNewItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BindingNavigatorAddNewItem.Click Table1BindingSource.AddNew() End Sub End Class ______ TextBoxプロパティDataBindingsのTextは「BindingSource - name」にしてあります。デザイナのテキストボックスはデータソースからドラッグしたものです。(Table1\name) テキストボックスに入力したものは、これでデータベースに保存できると思います。 次回からこのソフトを立ち上げたときに、自動的にプロフィールを呼び出せるようにしたいです。 Loadのイベントハンドラで 「もし(If)データベースに表示すべきデータがあるなら TextBoxname.Text = 何らかのコード」で良いと思うのですが、データがあるかないかという判定や、何らかのコードが分かりません。 知識不足なところですが、ヒント等ご教授いただけたらと思います。

  • データテーブルの使い方に関して

    MySQLからデータを取得し、その情報を加工した後、データセットへ格納したいと考えています。 単純にMySQLから直接データをデータセット等へ格納する方法は、FILL等を使えば 実現できましたが、1件1件加工しながらセットする方法がわかりません。。。 ※ 加工しながらというよりは、加工した後の結果データ 今現在、以下のようにデータセットとデータテーブルを作成しましたが、どのように データを追加すれば良いのでしょうか??? 《記述内容》   DataSet myds = new DataSet();   DataTable mytable = myds.Tables.Add("MyTable"); それに関連して教えて頂きたいのが、上記のようにデータテーブルをデータセット内に 作成しましたが、データテーブルというのは、そもそもテーブルの中に項目?フィールド?を作成しないと データというのは格納できないのでしょうか。。。 初歩的な質問で申し訳ありませんが、教えて頂きたいと思います。

  • VB2005のデータグリッドビューとデータテーブルについて

    いつもお世話になっています。 独学でVBの勉強をしているのですが、 どうしてもわからないことがあるので教えて下さい。 現在行なおうとしていることは、 mdbからデータテーブルにレコードを取得して、 それをデータグリッドビューに設定し、 値の一部をコードで変更するということです。 DataGridView1.DataSource = DataTable1 とすれば、データテーブルのデータを データグリッドビューにて表示させることができるのですが、 コードでデータグリッドビューの値を変更すると、 データテーブルの値も一緒に変更されてしまうんです。 DataGridView1.DataSource = DataTable1.Clone とすると、今度はレコードが表示されなくなってしまって・・・ 何か良い方法がありましたら、教えて下さい。 よろしくお願いします。

  • 「Excel」 フィルハンドルで連続データがでる理由

    Excelで連続データを自動入力するオートフィル機能というものがあると思います。 例えば、1と入力してフィルハンドルを使ってドラッグすると1111111となってしまいます。 コントロールキーをおしながらフィルハンドルでドラッグすると123456となってくれます。 どうして違いがでるのでしょうか。 そういうものといったらそれまでなのですが、、、。 お分かりになる方、教えてください。

  • データベースを更新したい(VB2008)

    VB2008でつくったアプリケーションでAccessのデータを更新したいです。DataGridView1でデータを表示させ更新ボタン押下時にデータ(Accessのテーブル)を更新したいです。 DataGridView1でデータを表示することはできましたが、「更新」押下に更新されません。 Accessのテーブル名は「01データです」 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me._01データTableAdapter.Fill(Me.年賀状DataSet._01データ) End Sub Private Sub 更新_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 更新.Click With DataGridView1 .Update()     End With     MsgBox("更新しました") End Sub

  • DataGridViewで表示に制限をつけたい。

    VB2005、SQLServer2005環境です。 DataGridでDBのレコードを表示しています。 フォームのデザイナに、データソースに表示されている テーブルをドラッグしただけでなので、現在は以下のように なってます。 Private Sub TestForm_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Load Me.testTableAdapter.Fill(Me.DataSet.test) End Sub レコードが少なければ問題ないのですが、10万や20万と増えて くると、これでは表示に時間がかかります。 (実際には数百程度しかデータは入らないのですが)。 DataGridViewに表示するレコードの数を200件程度にして、それ以上は スクロールさせた時に表示するような形式にしたいと思うのですが、 それを実現するための方法を教えていただけないでしょうか? できましたら、サンプルコードを交えて教えていただけると助かります。 宜しくお願いします。

  • VB2010 DataSet Dataの初期化

    VB2010のDataGridViewを使ってアドレス帳を作ってます。 登録データを初期化したいのですが、次のようにコードを書いても、初期化されません。エラーも出ません。DataSetを初期化して、保存する方法をとろうとしています。 DataSet.登録.clear() 登録TableAdapter.Update(DataSet.登録) お手上げの状況ですので、対処方法をご存知の方はご教授をお願いします。

  • VBでの質問です

    VBでの質問です Form1と2があるとします Form1とあるボタンを押すとForm2が開きFormが閉じるようにしたいのですがうまくいきません。どうしてでしょうか? Form1のコードで Form2.show Me.Close() と記述しましたがどこが違うのでしょうか。

  • VB2010 Dataset内のDB接続先変更

    VB2010のDatasetについてご質問があります。 Datasetにデータベースエクスプローラを使用してデータテーブルを作成し、Fillメソッドを使用してテーブルの参照を行っております。今回、サーバーの入れ替えを行うことになり、データベースの内容は全く変わらないのですが、コンピュータ名とIPアドレスが変更になるということで、今までのDatasetの接続先だけを変更するにはどうしたらいいのだ?で悩んでおります。 さらに、今回みたいなケースは今後もあると思うので、接続先文字列をいつでも変更できるようiniファイル等で外部から変更できるようにしたいと思っております。 ご教授よろしくお願い致します。