|
(このプログラムを実行するには、[プロジェクト|コンポーネント]で "Microsoft Data Bound Grid Control 5.0" および "Microsoft RemoteData Control 5.0" が選択されている必要があります。また、[プロジェクト|参照設定]では、"Microsoft Remote Data Object 2.0"、"Remote Data Bound Grid Control 5.0"、"Microsoft RemoteData Control 5.0" がすべて選択されている必要があります。)
メモ
Remote Data Control を使用するには、Microsoft Visual Basic Enterprise Edition 5.0 を使用する必要があります。
または、DB グリッドをバインドすることもできます。
MSRDC コントロール、テキスト ボックス、DBGrid のいずれかがバインドされた後、選択準備完了です。
例
Dim Qry As String 'クエリを作成する Qry = "SELECT * FROM Employees" Qry = Qry + " WHERE (LastName = '" + txtFind.Text + "')" 'データ コントロールをリフレッシュする MSRDC1.SQL = Qry MSRDC1.Refresh DBGrid1.Refresh
BINSERT を呼び出すことにより、データ バッファーにある行を挿入できます。
テーブルに 1 つまたは複数のレコードを追加します。
例
'一時的にこのテキストを保持する text1temp$ = Text1.Text text2temp$ = Text2.Text text3temp$ = Text3.Text ' テキスト ボックスがデータ ソースに ' バインドされている場合、 ' バウンド コントロールに ' データの変更を認識させるためには、 ' 次のコード行が必要です。 Text1.DataChanged = False Text2.DataChanged = False Text3.DataChanged = False ' これらの初期値が既に存在しているか ' チェックする必要があります。
UPDATE ステートメントを使用することにより、データベース内の列の値を変更することができます。特定の列の値をすべて変更しない場合は、WHERE 句を使用してテーブル内で変更する行を定義することができます。
この例では、グリッド内の現在の Last Name を Text3 テキストボックス内のテキストに置き換えます。
Dim strSQLChange As String Dim qdfChange As rdoQuery Dim rstEmployees As rdoResultset ' テキスト ボックスがデータ ソースに ' バインドされている場合、 ' バウンド コントロールに ' コードの次の行が必要です。 Text3.DataChanged = False 'グリッド内の Last Name を置き換える Last$ = DBGrid1.Columns(2).Text 'アクション クエリ用の SQL ステートメントを定義する strSQLChange = "UPDATE Employees SET LastName = " & _ "'" + Text3.Text + "' WHERE LastName = '" + Last$ + "'" Set qdfChange = MSRDC1.Connection.CreateQuery("", strSQLChange) Set rstEmployees = MSRDC1.Connection.OpenResultset( _ "SELECT * FROM Employees", _ dbOpenForwardOnly) qdfChange.Execute rstEmployees.Requery MSRDC1.Refresh rstEmployees.Close DBGrid1.Refresh '新規レコードを追加する MSRDC1.Resultset.AddNew Text1.Text = text1temp$ Text2.Text = text2temp$ Text3.Text = text3temp$ 'Resultset を更新する MSRDC1.Resultset.Update
データの更新後、次のコードを実行して変更を適用します。
例
rdoQuery オブジェクトは、WHERE 句に 1 つまたは複数のパラメーターを持つ SQL クエリを実行するために使用されます。パラメーターは、実行されるたびに rdoQuery オブジェクトによって処理されます。これは、頻繁に使用するクエリを実行する際に役立ちます。パラメーター クエリは、ユーザーまたはアプリケーションによって指定されたパラメーターを通常のクエリに置き換えます。
Dim Qry As String Dim qdfChange As rdoQuery Dim rstEmployees As rdoResultset ' テキスト ボックスがデータ ソースに ' バインドされている場合、 ' バウンド コントロールに ' コードの次の行が必要です。 Text1.DataChanged = False Text2.DataChanged = False Text3.DataChanged = False 'クエリを作成する 'パラメーターのプレースホルダーとして ' 疑問符を使用します。 Qry = "INSERT INTO Employees(Initials, LastName, FirstName)" Qry = Qry + " VALUES (?, ?, ?)" 'クエリに名前を付けることにより、 'そのクエリに再度アクセスすることができますが、 '"" を使用した場合、このクエリは Query 'コレクションに追加されません。名前を付ければ、 'Query コレクションに追加されます。 Set qdfChange = MSRDC1.Connection.CreateQuery("", Qry) 'パラメーターを設定する qdfChange.rdoParameters(0) = Text1.Text qdfChange.rdoParameters(1) = Text2.Text qdfChange.rdoParameters(2) = Text3.Text Set rstEmployees = MSRDC1.Connection.OpenResultset( _ "SELECT * FROM Employees", _ dbOpenForwardOnly) 'SQL ステートメントを実行する qdfChange.Execute 'データ コントロールをリフレッシュする MSRDC1.Refresh rstEmployees.Close DBGrid1.Refresh
Dim strSQLChange As String Dim qdfChange As rdoQuery Dim rstEmployees As rdoResultset ' テキスト ボックスがデータ ソースに ' バインドされている場合、 ' バウンド コントロールに ' コードの次の行が必要です。 Text3.DataChanged = False 'DBGrid の 3 番目の列は LastName Column で、 'これは Update ステートメントの検索条件です。 Last$ = DBGrid1.Columns(2).Text 'アクション クエリ用の SQL ステートメントを定義する 'このステートメントは、グリッド内の LastName を 'Text3 内のテキストに置き換えます。 'パラメーターの場所に疑問符を使用します。 strSQLChange = "UPDATE Employees SET LastName = " & _ "? WHERE LastName = '" + Last$ + "'" 'クエリに名前を付けることにより、 'そのクエリに再度アクセスすることができますが、 '"" を使用した場合、このクエリはコレクションに追加されません。 Set qdfChange = MSRDC1.Connection.CreateQuery("", strSQLChange) 'パラメーターを設定する 'これにより、Update ステートメント内の ? が置き換えられます。 qdfChange.rdoParameters(0) = Text3.Text Set rstEmployees = MSRDC1.Connection.OpenResultset( _ "SELECT * FROM Employees", _ dbOpenForwardOnly) 'パラメーターを使用した SQL ステートメントを実行する qdfChange.Execute MSRDC1.Refresh rstEmployees.Close
|