- ベストアンサー
DataGridViewへの新規行追加について(VB2008)
VB2008ExpressEdition,DBはAccess2003の環境にて小規模な業務アプリの開発を行っている者です。 VBを使用してまだ2週間足らずですので、初歩的な質問かもしれませんが、よろしくお願いします。 テーブルの内容を明細表示し、登録ボタンを押すとDB更新を 行うような簡単なマスタメンテナンス画面があるとします。 明細表示のため、フォーム上にDataGridViewを作成、 DataSouceプロパティを指定し、型付きDataSetをBindさせました。 AllowUserToAddRowsプロパティはTrueとし、DataGridView上への 新規行追加も可能としてあります。 このとき、プログラムを動作させ複数行新規追加を行うと、 2行目の行追加のタイミングで、 「データの登録時にエラーが発生しました。 列「〇〇」は一意であるように制約されています。 値〇は既に存在します。」 というエラーになってしまい、行追加が1行以上行えません。 新規行追加時、エラー対象とされている列はDefault値Nullと なっており、その値Nullの行を複数作成する操作なので キー重複でこのようなエラーとなっているかと思いますが、 自分としてはこのようなエラーを出さず、 画面上では明細を複数行新規追加を可能としたいのです。 (キー値は最終的に更新時にマスタから値を取得、採番してカラムにセットし登録する。 また、キー重複チェックも後でロジックを組んで行う。) このエラーチェックを行わないようにする設定、 もしくは回避方法等ありますでしょうか?
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- VBのDATAGRIDVIEWについて
環境VB.net 初心者です。教えていただきたのですが Datagridviewを使用しループ処理で全行の単価セル内に数字の0を追加したいのですが1行目のセルのみ値が追加されません。(2行以降は全て追加されます)コードは下記の通りです。 For CNT = 0 To マスタテーブルCNT マスタテーブルdatagridview("単価", CNT).Value = 0 Next ご教授お願いします。
- 締切済み
- Visual Basic
- VB.NET DataGridView 行の追加
VB2010 WinXPにて開発しています。 「DataGridView1.Rows.Add()」で行を追加すると入力行の上の行が追加されるのは何故でしょうか? 下らない質問かと思いますが、行き詰まってます。 分かる方がいましたら、教えて下さい。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- DataGridViewの行追加について。
初めまして、VB初心者ですが皆様よろしくお願いいたします。 今、VB2005でDataGridViewを使用した入力システムを作成しています。 1~10行目まで入力したデータに対して、5行目に新規行を追加したいのですが。 この場合、現在入力されている5~10行目のデータを、6~11行目に退避した後 「DataGridView1.Rows.Add(DataGridView1.Focus」で5行目に新規行を追加すればいいのでしょうか? うまくいかず悩んでいます。 ご教授よろしくお願いいたします。
- ベストアンサー
- Visual Basic
- VB.netのDataGridViewについて
VB.netのDataGridViewについての質問です。 DataGridViewで出力された行を選択して、 その行の値をテキストボックスなどに出力させることは可能なのでしょうか? やりたいことは 1.データベースより取得してきたDatatableをDataGridViewに出力 2.出力されたDataGridViewの行を選択する 3.その選択された行の項目(複数)の値を画面上の個々の テキストボックスなどに反映させる です
- ベストアンサー
- Visual Basic
- datagridviewに行追加し、値を入れたいです。VB.NET
'データグリッドの選択された値を変数frowに代入する。 frow = DataGridView1.SelectedCells.Item(0).Value 'データグリッドの選択された値を変数srowに代入する。 srow = DataGridView1.SelectedCells.Item(1).Value 'データグリッドに新しい行を追加する。 KYU70000_1.DataGridView1.Rows.Add(DataGridView1.Rows) KYU70000_1.DataGridView1.Rows.Add(DataGridView1.Rows) '選択された値をKYU70000_1のデータグリッドに代入する。 frow = KYU70000_1.DataGridView1.SelectedCells.Item(0).Value ←ここがインデックスが範囲を超えています、となります。 srow = KYU70000_1.DataGridView1.SelectedCells.Item(1).Value どうすれば良いのでしょうか?教えてください。意味が分かりません。
- ベストアンサー
- Visual Basic
- DataGridViewで、選択した行の値を取得したい。
VB2005環境です。 VB2005で、選択した行の、特定の列から値を取って、 テキストボックスに出力したいと思っています。 Itemプロパティかと思い、 TxtBox1.Text = Me.DataGridView1.Item _(0,Me.DataGridView1.CurrentRow.Index).ToString と記述してみました。1列目の、選択した行と交わるセルの 値が取れるかと思いきや、うまく取得できません。 方法を教えていただけないでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- DataGridViewの内容をDBに反映する時
VB2005で開発をしています、DataGridViewの事について質問させていただきます。 DataGridViewに入力されたデータを、登録ボタン押下によってDBに反映したいのですが、 この際どのようにDBへ登録すれば効率がいいでしょうか? 今は、DataGridViewの1行目を読み込んでDBに登録、 2行目を登録・・・・最終行を登録という感じで、1行ずつ登録を行おうかと考えています。 よろしければご教授お願いいたします。
- ベストアンサー
- Visual Basic
- DataGridViewでの追加行の表示について
VB2005で作成。 DataGridViewを非バインドで作成しました。 追加行のプロパティもtrueにしています。 通常そのまま作成すると新規行が1行だけ空白表示で その下はグレーで何もない状態です。 画面いっぱい(グリッドの画面)にグリッドの行の枠を 表示してほしいとの要望がありました。 つまりデフォルトでグリッドの画面いっぱいにexcel表示のように グリッドの枠を表示してどこからでも入力できるほうが良い ということを言われました。 それが設定か何かをするだけで、簡単できると 思っているので調べてますが、方法が まったく見つからない状態で困っています。 わたしは無理なんじゃないの?と思ってます。 考えているのは、 ・自分である程度の行を最初に無理やり追加して その行数でイベント(削除、追加、データ保存時など)で コントロールする。手間がかかりますが仕方ない。 ・設定するプロパティがある(ぜひご教授ください) ・他に回避策がある。(ぜひご教授ください) ・有料のツールにあれば買う。(今あるもので済ませたいので避けたい) 何か良い方法がないでしょうか?よろしくお願いします。
- ベストアンサー
- Visual Basic
- C# DataGridViewの行をDeleteキーで削除したい
お世話になっています。 只今DataGridViewを使用した表を作成しています。 入力によってDBへ追加、編集するところまで行きました あとは削除だけと思っていたのですがうまくいきません。。。 行ヘッダを選択してDeleteキーを押下すると 選択された行を削除する処理に繋げたいのですが キーイベントを拾ってくれません・・・ あちこちのサイトを見て回りましたが 解決方法が見つからず・・・ プロパティにて、AllowUserToDeleteRowsをtrueにしていますが、それだけでは出来ないのでしょうか? よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- DataGridViewのカラムを、見た目だけ消したい。
VB2005、SQLServer2005環境です。 DataGridViewに、DBから取得した値を表示させ、それを削除 できるようなプログラムを作っています。 DataGridViewの一番左側にキーとなるカラムがあるのですが、 それを見た目だけ消したいと考えています。 キー 名前 ---------------- 1 タロウ 2 ハナコ 3 ユウジ 例えば、このような表であれば、見た目に表示されるのは 名前だけで、削除時は内部的にキー列を参照したいのです。 Me.DataGridView1.Columns(0).Visible = False とすることで、とりあえずは消えたのですが、 Me.DataGridView1.CurrentRow.Cells(0).Value.ToString で値を見てみると、名前列の値が取れていました。 見ためだけ列を消す方法はないでしょうか? ご教授ください。
- ベストアンサー
- Visual Basic
お礼
ご回答ありがとうございます。 korin_さんにお教え頂いた コードに Me.DataSet.テーブル名.PrimaryKey = Nothing という記述で出来ました! 私は Me.DataSet.テーブル名.カラム名.Unique = Nothing としており、 「テーブル〇〇の主キーであり、一意制約制限は削除できません」 とエラーとなってしまっていました。 明細を複数行新規追加することもできたので、 これで先へ進めそうです。 初歩的な質問ですが、ありがとうございました!