人に聞けない痔の悩み、これでスッキリ >>

いつも参考にさせていただいております。

現在データベースからデータを取ってきてFlexgridに表示するプログラムを作りました。
そのフォームでFlexgridのある行を選択して削除ボタンを押すと、Flexgridの選択した行とデータベースのIDと一致した行を削除するようにしたいと思っています。
しかし、データベースの削除を行うためにFlexgridの選択した行のID列の値を取得しなければならないと思うのですが、どうやって取得すればよいのか分かりません。
どのようにすればよいでしょうか?
サンプルなどあればよろしくお願いいたします。

ID  名前  部
------------------
01  佐藤  野球
02  鈴木  サッカー  ←例えばこの行を選択したら02を抜き出したい
03  田中  剣道
04  山田  柔道
05  高橋  バレー

環境:Window XP Pro、FlexGrid for .NET 4.0J、SQL Server 2005

このQ&Aに関連する最新のQ&A

A 回答 (2件)

VB 6.0 の例です。


参考になるかな~
'Flexgrid 選択
Private Sub FlexGrid1_Click()
  Dim wR       As Integer
  '
  wR = FlexGrid1.RowSel'選択行
  MsgBox FlexGrid1.TextMatrix(wR, 0)'ID
  MsgBox FlexGrid1.TextMatrix(wR, 1)'名前
  MsgBox FlexGrid1.TextMatrix(wR, 2)'部
End Sub
    • good
    • 1

オンラインヘルプを見るのが確実だと思います。


それかメーカーに問い合わせるか、ですね。
    • good
    • 2

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QFlexGridで複数選択したセル、行、列を取得

VisualBasic5を使用しています。
フレキシブルグリッドコントロールについてですが、
複数の行や列やセルを選択したときにそれらの値を取得するプロパティとかって何かありませんか?
特に行について教えて欲しいのですが。

Aベストアンサー

こんにちは。maruru01です。

Row ・・・選択範囲の上端行番号
RowSel・・・選択範囲の下端行番号
Col ・・・選択範囲の上端列番号
ColSel・・・選択範囲の下端列番号

ちなみに値の取得は問題ないですが、値を設定する場合は、必ずRowとColを先に設定しなくてはなりません。
それは、RowとColを設定すると、自動的にRowSelとColSelにRowとColと同じ値が設定されるからです。
では。

QMSFlexGrid 行選択状態

現在VBを勉強しております。(WindowsXP、VB6.0)

http://oshiete1.goo.ne.jp/qa996239.html
↑の質問と同じ内容で悩んでいるんですが、回答を見ても理解出来ず、解決出来ていません(>_<)

1.処理起動時に、テキストファイルからデータを読み込み、グリッドへ表示した後。
2.ソートした後。
3.「検索」処理にてデータを絞り込んで表示した後。

以上3点の時に、行選択状態でなくなってしまうので、それを修正したいんですが、方法が分かりません(;_:)

現在は、グリッドのフォーカスイベントに
MSFlexGrid1.SelectionMode = flexSelectionByRow

を設定しているだけです。

以上、よろしくお願いいたしますm(__)m

Aベストアンサー

こんにちは。
以下を追加してみたらどうですか?

'行を選択
MSFlexGrid1.Row = 1
MSFlexGrid1.RowSel = 1

'列を選択
MSFlexGrid1.Col = 1
MSFlexGrid1.ColSel = MSFlexGrid1.Cols - 1

Q特定行の色を変えたい(FlexGrid)

VB2005環境にてFlexGridを使用しています。

ある列のセルの値が1になったら、その行の背景色を灰色にしたいと
思っているのですが、その方法についてご教授ください。

おそらくは値が変わった時に何かイベントを取得できると思うので、
その時に例えば左から2列めの該当セルが1にされたら、色を変える…
というような考え方で良いでしょうか?
ただ、それを実現するためのイベントが何か、また、行の値を
変える方法がわからず困っています。
(ROWプロパティでしょうか?)

申し訳ないのですが、サンプルコードを交えて教えていただけ
ないでしょうか?
よろしくお願いします。

Aベストアンサー

VB6の頃の FlexGridってことでしょうか?
セルのデータを変更しても それを検知できるイベントはありません
やるとすればEnterイベント(VB6風ならGotfocusイベント)やLeaveCellイベントで
カレントセルの列番号、値を調べて条件に一致したならCellBackColorで色を変更といった具合でしょう
LeaveCellイベントでやる場合は 再帰を不可にする工夫が必要です

  dim n as integer
' 元に戻すための色を設定
  dim cl as Drawing.Color = axMSFlexGrid1.BackColor
  if axMSFlexGrid1.Text = "1" then
    ' 希望の色に変更してください
    cl = Color.Red
  end if
  ' 左から2番目の列がカレントセルなら
  ' FixedColsを考慮したほうがいいでしょう
  if axMSFlexGrid1.Col = 1 then
    ' 行の先頭から末尾までセルの背景色を変更
    for n = axMSFlexGrid1.FixedCols to axMSFlexGrid1.Cols-1
      axMSFlexGrid1.CellBackColor = cl
    next
    ' 元選択されていた列に戻す
    axMSFlexGrid1.Col = 1
  end if

といった具合でしょう ...

行番号は Rowプロパティで取得できますよ

VB6の頃の FlexGridってことでしょうか?
セルのデータを変更しても それを検知できるイベントはありません
やるとすればEnterイベント(VB6風ならGotfocusイベント)やLeaveCellイベントで
カレントセルの列番号、値を調べて条件に一致したならCellBackColorで色を変更といった具合でしょう
LeaveCellイベントでやる場合は 再帰を不可にする工夫が必要です

  dim n as integer
' 元に戻すための色を設定
  dim cl as Drawing.Color = axMSFlexGrid1.BackColor
  if axMSFlexGrid1.Text = "1" t...続きを読む

Q日付型のフィールドに空白を入れる方法を教えてください

ASP(VBScript)でSQLサーバにINSET INTO文を使ってデータを格納しているのですが、日付の部分がNULLの時、「1900/1/1」が入ってしまいます。
そのまま、空白を入れる方法はどうやったらよろしいのでしょうか?

TABLE1の内容は
番号|内容|日付です。

INSERT INTO TABLE1 VALUES ( 1, 'あいう', '')

結果
1|あいう|1900/1/1

Aベストアンサー

あとは、プログラムの書き方次第ですね、、、


If hensu=Null Or hensu="" Then
dt = "NULL"
Else
dt = "'" & hensu & "'"
End IF

E_SQL = "INSERT INTO TABLE1 VALUES & _
"( 1,'あいう', " & dt& ")"
の様に書きます。

QDataGridViewで指定したセルの値を取得

こんにちは。

VB2008のDataGridViewで指定したセルの値を取得をする方法がわかりません。
どなたか教えてください。

Aベストアンサー

こんばんは.

 Dim Data As String
 Data = Me.DataGridView(0, 2).Value
 MsgBox(Data)

みたいな感じで取れないですかね???

QDataTableから条件を満たした行を別のDatatableへコピーしたい

VC#2005とSQLServer2005ExpressEditionでWindowsアプリケーションを作成しています。

データベースの中から1つのマスタテーブルのデータを呼び出すのにTableAdapterを使ってDataTableにデータをバインドしました。
そこから条件を満たしている行をすべて抽出して同じ型のDataTableにデータをコピーしたいのです。

ですから、DataTableは2つ用意しています。1つは上記の通りデータをバインドしていますが、もう1つは宣言しただけなのでまだ空っぽの状態です。
DataTableにはカラムが3列あり、その中の1列をグループIDとしています。
条件としてはグループIDが同じであるということです。
やりたいことは条件を満たしている行をすべて抽出して空のデータテーブルにコピーすることです。

どなたかご存知の方いらっしゃれば教えてください。
よろしくお願いします。

Aベストアンサー

C#だったんですね … さほど変わりないと思いますが

お使いのコードが提示されていないのでこちらで適当な変数をでっち上げております
現在お使いのコードを支障の無い範囲で提示しましょう

//元のデータテーブルがdtSourceとすると
// テーブル構造をコピー
DataTable dt = dtSource.Clone();
DataRow r = null;
foreach( DataRow dtRow in dtSource.Select("選択するための文字列"))
{
  r = dt.NewRow();
  for( int n = 0; n < dtRow.ItemArray.Length; n++ )
  {
    r[n] = dtRow[n];
  }
  dt.Rows.Add( r );
}
といった具合になると思います

# 前回の投稿中のstSorceはdtSourceの単なるミスです

QMSFlexGridのデータ表示位置の設定

VB6.0の勉強をしております。
windowsXPです。

標記の件についてなんですが、グリッド内のデータが数値なのか文字なのかで位置が変わってしまうのですが、これを全て左寄せにしたいと思っております。
以下のようなページを見つけたんですが、
http://m--takahashi.com/bbs/pastlog/a3100/A3027.html

グリッドにデータを表示した後、ColとRowを動かしながら、全要素(セル)に対して処理しないとやはりダメでしょうか?

よろしくお願いいたします。

Aベストアンサー

こんにちは。
1セルごとと言うより、下記のように1列ごとに設定出来ます。

MSFlexGrid1.FixedAlignment(0) = flexAlignCenterCenter 'カラム名は中央寄せ
MSFlexGrid1.ColAlignment(0) = flexAlignLeftCenter '列を左寄せ

QFlexGridで文字色を変更。

FlexGrid にてあるセルに文字列を表示します。で、その文字列の途中から文字色を変更したいのですが、可能なのでしょうか?

Aベストアンサー

出来ないでしょう。
絵を貼り付けるなら可能です。


Private Sub Command1_Click()
With Picture1
.AutoRedraw = True
.BorderStyle = 0
.Cls
.BackColor = MSFlexGrid1.BackColor
.ForeColor = vbBlack
Picture1.Print "黒";
.ForeColor = vbRed
Picture1.Print "赤"
.Width = .TextWidth("黒赤")
.Height = .TextHeight("黒赤")

MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 1
Set MSFlexGrid1.CellPicture = .Image
End With
End Sub

QMSFlexGridのセルをチェックボックスにしたい。

MSFlexGridのセルをチェックボックスに出来るかどうか
という質問はよく目にするのですが、答えがハッキリしないので
ここで質問させてください。
私自身いくらやってもチェックボックスを表示できませんでした。

Aベストアンサー

出来ません
製品版(VsFlexGrid)の方は、CellCheckedプロパティで出来ます

参考URL:http://www.boc.co.jp/support/database/P1_88.htm

QVB.NETのDataGridで、選択行の特定の列の内容を取得したい

タイトルにあるとおり、DataGridを使用している場合、実行時に選択された行の特定の列の内容を取得するにはどのようにすればよいのでしょうか?

DataGridは複雑で、まだよくわかっていません。
よろしくお願いします。

Aベストアンサー

選択している行番号は、dataGrid1.CurrentRowIndexでわかります。
行、列を指定して各セルにアクセスするには、
dataGrid1(行番号,列番号)でいいので
dataGrid1(dataGrid1.CurrentRowIndex,列番号)
で選択されている行の特定の列の内容を取得できます。
註:番号は、0始まり


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング