• 締切済み

フィールドの主キープロパティを取得したい

お世話になっております。 Select文で抽出したレコードセットのフィールドのプロパティを参照し、主キーの一部であるかを取得したいと思っております。 <省略> Select * From Atbl Where Id = IdHensu <省略> Debug.Print rstA.Fields(0).Properties("Keycolumn").Value でやってみましたが、全て[False]で戻ってきてしまいます。 使い方が間違っているのでしょうか? MSDEには、これで取得できると書いてあると思うのですが・・・ 皆様、宜しくお願い申し上げます。 <環 境> Windows2000SP2 VB6SP5 + SQL7.0SP3 SQLにはADOで接続しています。

みんなの回答

回答No.1

rstAのCursorLocationをadUseClientにして、Open時のLockTypeをadLockReadOnly以外にして試してみて下さい。

Chika-F
質問者

お礼

ご免なさい。御礼が遅くなりまして・・・ 教えて頂いた方法でも上手くいったのですが全体の流れから今回は適さない方法でした。でも、とても勉強になりました。 ありがとう御座いました。 ちなみに、今回はSQLが持っているシステムデータベース内からフィールド設定情報を取得する方法でやってみました。

関連するQ&A

  • AccessVBA:フィールドの標題名を取得したい

    いつもお世話になっております WindowsXP SP1 Access2002を使用しております。 あるテーブルのフィールド名をイミディエイトウィンドウに出力するプログラムを以下のように作成しました '--------------------------------------------------- 'ADO結果セットのフィールド名をイミディエイトウインドウに出力 '--------------------------------------------------- Sub test()   Dim testcnt As Long   Dim gDb_User  As ADODB.Connection   Dim Rst   As ADODB.Recordset      Set gDb_User = New ADODB.Connection   Set gDb_User = CurrentProject.Connection   Set Rst = New ADODB.Recordset      Rst.Open "select * from テーブル1 ", gDb_User, adOpenKeyset, adLockOptimistic      Debug.Print "FieldName"   Debug.Print "--------------"        For testcnt = 0 To Rst.Fields.Count - 1     Debug.Print Rst.Fields(testcnt).name   Next      Debug.Print "--------------"   Debug.Print "End"      Rst.Close   Set Rst = Nothing   gDb_User.Close   Set gDb_User = Nothing    End Sub '--------------------------------------------------- 実行すると、フィールドは出力されるのですが 各フィールド名の標題も取得したいと考えております。 標題のプロパティ等をどのように抽出すればよろしいでしょうか? ご教示のほど、何卒よろしくお願いいたします。

  • 複数フィールドを返すストアドからある1フィールドの値を取得するにはどの

    複数フィールドを返すストアドからある1フィールドの値を取得するにはどのようにすればいいのでしょうか。 SP_Aというストアドがあります。 SP_Aストアドではパラメータ値を指定して該当するレコードをSELECTで取得しています。 ----------------------------- SELECT TOP 1  field1,  field2,  field3 WHERE  field2 = @パラメータ値;, ----------------------------- 新たにSP_Bというストアドを作成してその中でこの上記のストアドを実行してfield3フィールドの値のみ取得したいと思っていますがどのようにすればいいのかわかりません。 このSP_Aストアドは既に色々な箇所で使用されている為、修正したくありません。 SP_Aストアドを修正しないでfield3フィールドの値のみ取得する事は可能でしょうか。 説明が下手ですみませんがうまく伝わりましたでしょうか。 ご存じの方がいましたらアドバイスいただけませんでしょうか。 些細な事でも何でも構いませんので宜しくお願いします。

  • SQLで取得したフィールドをSQL文として利用

    お世話になっております。 MYSQLで sql_id (int PK) sql_data (text) のようなテーブル(sql_db)を持ち select sql_id from where (sql_data をsqlとして実行した結果 ) > 200 のように、フィールドから取得した値をSQLとして実行したりする方法はございますでしょうか。 ご教授よろしくお願いいたします。

  • MySQLからフィールド名のリストを取り出し、一部のフィールド名を除外したい場合

    PHP + MySQLにて テーブルからフィールド名だけを取得し、さらに一部のフィールド名を除外したいです。 レコードじゃないのでis not構文は使えませんでした。 何かいい方法があれば教えてください。 $sql = "select * from table"; //tableテーブルからフィールド名を取り出し $rs = mysql_query($sql); $fields = mysql_num_fields($rs); $column = array(); for ( $i=0; $i<$fields; $i++ ) { $column[$i] = mysql_field_name($rs, $i); }

    • ベストアンサー
    • MySQL
  • MSDEのSQLについて

    DB初心者です。 通常のAcceessで支障なく使っていた以下のようなSQL文がMSDEのビューではエラーがかかって使えません。原因と対応法を教えて頂けないでしょうか? < 「テーブル1」の「フィールド1」と「フィールド2」の相関係数を算出するSQL文 > SELECT (Sum(([フィールド1]-(SELECT AVG([フィールド1]) FROM テーブル1))*([フィールド2]-(SELECT AVG([フィールド2]) FROM テーブル1))))/Sqr(Sum(([フィールド1]-(SELECT AVG([フィールド1]) FROM テーブル1))^2)*Sum(([フィールド2]-(SELECT AVG([フィールド2]) FROM テーブル1))^2)) AS 相関係数 FROM テーブル1; これがMSDEだと下のようなエラーになります。 ADOエラー: 集計やサブクエリを含む式に対して集計関数を実行することは出来ません。 どうしたいいでしょうか? また、MSDEや易しいTransactSQLを習得する良い方法があればアドバイスを頂きたいのですが。

  • Excelワークシート上にSQL文を書き込み取得したデータをワークシート上に取得

    はじめましてこんにちわ。 現在ExcelとSQLServerでADOを使ってデータを取得したいと思っています。 SQL文をワークシート上に書いてそれを読み込んでSQL文を実行するようにしたいのですが、それを取得したあと、データをExcelワークシートに表示させる方法が思いつきません。 SQL文で指定するデータは任意の文です。そのため取得されたフィールドがいくつできるかわからない状態です。 例えば、SQL文であったら SELECT 商品ID,商品名,価格 from 商品テーブル なりますが、商品ID,商品名,価格フィールドを自動的に Excelフォーム上に作りたいということです。 ・基本的にSELECT文しか使わない ・SQL文は任意のSQL文である の条件がありますがそれはできるのでしょうか? よろしくお願いします。

  • ストアドのフィールド指定方法

    MS SQL Server7.0のストアドプロシージャについての質問です。 複数のフィールドを持つテーブルの、各フィールドに入ってる値を順番に調べる方法について教えて下さい。 具体的には、フィールドは"月日_01"から"月日_31"まであり、各フィールドには"1"か"0"のどちらかの値を持ってます。この31個のフィールド値を調べて、"1"と"0"の各合計値を求めたいです。 ADOのレコードセットなら、Fields でフィールドのインデックス値を指定出来ますので簡単にループ処理できますが、ストアドの場合インデックスによるフィールド指定がうまく出来ません。 現在はIF文で各フィールドを一つづつ判定してる状態です。もっとスムーズに行う方法がありましたらご教授下さい!どうぞ宜しくお願いします。

  • 特定のフィールドにデータが入ってる件数を調べたい

    ageというフィールドにデータが入っている件数を調べたいのですが、どのようなsql文を書けばいいでしょうか。 ageフィールドのNULLは「いいえ」、デフォルト値は「空欄」です。 $sql = "SELECT COUNT(*) AS cnt FROM table where 'age' is not null ;"; この文ではうまくいきませんでした。ageフィールドのデフォルト値をNULLにすればいいのでしょうか?

    • ベストアンサー
    • MySQL
  • 「[Microsoft][ODBC SQL Server Driver]COUNT フィールドが正しくありません。」えらーについて

    おせわになります、 JavaからMSDEに対してSELECT UPDATE等の処理を行っているのですが。以下のSQLエラーが出てしまいます。 どのような意味なのでしょうか? 雰囲気としてはUPDATE文でおこっているような感じなのですが… ----エラーメッセージ------ [Microsoft][ODBC SQL Server Driver]COUNT フィールドが正しくありません。 よろしくお願いします。

  • (ADO)フィールド名から取得したい

    ADOを使ってエクセルからアクセスのデータを取得しています。 (2003です。) Sub アクセスのデータをエクセルへ() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim i As Long Range("a1") = "番号" Range("b1") = "種類" rs.Open "SELECT * FROM Tbl", cn, adOpenKeyset, adLockOptimistic For i = 1 To rs.RecordCount Range("a" & i + 1) = rs("番号") Range("b" & i + 1) = rs("種類") rs.MoveNext Next i End Sub 結果は    A     B 1  番号   種類 2  ××   ○○ となるのですが コート゛の Range("a1") = "番号" Range("b1") = "種類" の部分を省略して テーブルのフィールド名から取得できないでしょうか? 例は2つのフィールドしかないから楽なのですが 実際はTblには30列くらいあるのです。 アクセスのOffice Linksや アクセスからメニュー[ファイル]-[エクスポート]のような結果がほしいです。 どうしてもADOでやりたいので どなたかご教授よろしくお願いします。

専門家に質問してみよう