• 締切済み

Access で XMLデータを読み込むとき

AccessのDBのデータセットにXMLから、ReadXmlSchemaとReadXmlメソッドを利用してデータを読み込むようにしているのですが、「DataExceptionはハンドルされませんでした。」「列名’NO'は別の種類に対して定義されています。」というエラーが出てきます。 この。「列名’NO'は別の種類に対して定義されています。」という意味がわからないのですが、アドバイスをお願いできないでしょうか?

  • GpH2
  • お礼率83% (20/24)

みんなの回答

  • kuuko
  • ベストアンサー率0% (0/0)
回答No.1

多分、NO が予約語のためだと思います。列名 NO を他の名前に変更する必要があると思われます。

GpH2
質問者

お礼

kuukoさん アドバイスありがとうございます。 いろいろ名称を変えたり…と試してみました。 結果、 <Table1 NO=001> </Table1> といった書き方で、NOというレコードがある別のテーブルが あることが原因でした。 <Table11>   <NO>001</NO> </Table1> とすると解決できました。 ありがとうございました。

関連するQ&A

  • XMLからデータセットへ

    こんにちは 初めての質問です。 今XML形の文字列があります。 string strXML = @" <dataset1> <table1> <column1>a</column1> <column1>b</column1> <column1>c</column1> <column1>d</column1> <column1>e</column1> <column1>f</column1> </table1> </dataset1>"; この文字列をXMLファイルとして保存します。 XmlDocument xml = new XmlDocument(); xml.LoadXml(strXML); xml.Save(@"C:\test.xml"); 保存したXMLファイルをデータセットで読み込みます。 DataSet ds = new DataSet(); ds.ReadXml(@"C:\test.xml"); 以上の流れでデータセットの作成はできますが、 一回XMLファイルを保存しないといけません。 何とか保存しないで、文字列から直接データセットを生成する方法はありますか? よろしくお願いします。

    • ベストアンサー
    • XML
  • VB2005でXMLのテキストデータをXMLデータにするには?

    VB2005の初心者です。 タグ付きのXMLのテキストデータを読み込んで、項目ごとにDBに登録したいのですが、やり方が分りません。 テキストデータをXMLデータ、もしくはノード、もしくはデータセット型に変換しなければならないと思うのですが、そのやり方を教えていただきたいです。 ちなみに、XMLデータをテキストデータにするのは下記のとおりでできました。この strText を逆にXMLデータに変換したいです。 Dim xmlDoc As MSXML2.DOMDocument = New MSXML2.DOMDocument Dim strText As String xmlDoc.PreserveWhitespace = True xmlDoc.Load("C:XMLData.xml") strText = xmlDoc.xml 何かヒントでも良いので、たくさんの方の知恵をお借りしたいです。

  • データセットの違いにつきまして

    VB(2003)でADOアクセスのプログラムを作成しています。 データセットにつきまして、質問したき件ありまして 書き込みました。 私には、VBにデータセットが2種類あるように思われるのですが、 質問を以下に記述させていただきます。 質問が少し変かもしれませんが、どなたかアドバイス いただけるとありがたいです。 (1)ひとつめのデータセット DBのアクセスとかで下記の定義で定義して使う データセット Dim ds As New DataSet と (2)ふたつめのデータセット ソリューションエクスプローラの 追加ー>新規項目の追加で選択した[データセット] で追加されるデータセット dataset1.xsd が ありますが、この2つの関係はどのように捕らえたら よいのでしょうか? 質問がおかしいかもしれませんが、どなたか教えて いただけるとありがたいです。 ちなみに、私が作成したDBのアクセスのプログラムは (2)を使用しています。((1)は使用していないです)

  • アクセスADOで更新クエリがエラーになる

    アクセスからYES/NO型をを含むテーブルをSQLサーバーへ移行したのですが アクセスから更新クエリを使ってYES/NO型のフィールドを全てFalseにしたいのですがエラーになってしまいます。 cn.Execute "UPDATE テーブル SET 返事 = False" このコードを アクセスからADOを使ってアクセスのテーブルに対して行えば問題なくできるのですが そのままSQLサーバーのテーブルに対して実行すると 「列名'False'が無効です」 となります。 そもそも列名は「False」ではなく「返事」です。 SQLサーバーでのデータ型は「bit」になっています。 何かわかる方御回答よろしくお願いします。

  • Access2002 VB がエラー

    Access2002 VBで以下のコーディングをしてます Dim db As Database Dim rs As Recordset Dim fld As Field Set db = CurrentDb Set rs = db.OpenRecordset("ConvertChar") これを実行するとdb宣言行で以下のエラーが表示されます。 コンパイルエラー: ユーザ定義型は定義されていません。 これは何が原因でエラーとなるのでしょうか? 宜しくお願いします。

  • VBからAccessのデータベースをよみたい。けどエラー

    こんにちわ 先日 http://oshiete1.goo.ne.jp/kotaeru.php3?q=681876 でVBからアクセスのデータベースを読み込むことで 質問したものです。 (VB6.0 Access2000 Win2000でやってます) VB6.0にバージョンアップし(DAO3.6を選択するため)、変数も定義できたのですが、 Private Sub Form_Load()の部分で(以下) Set wspace = DBEngine.Workspaces(0) Set dbname = wspace.OpenDatabase(mypath & "\db1.mdb") dbname.QueryTimeout = 0 .QueryTimeoutに対してコンパイルエラーがでてしまいます。「メソッドまたはデータ メンバが見つかりません」というものです。そういえばOpendatabaseなどは「.」を打った時点でメソッド?の一覧が出るのですが、QueryTimeoutはでてきません。 DAO3.6以外にもなにか追加しないといけないのでしょうか? ヘルプで見たのですがメンバとは「コレクション、オブジェクト、またはユーザー定義型を構成する要素。」・・・ということでチンプンカンプンです(ノД`) ちなみにdbname.QueryTimeout = 0の部分をコメントアウトすると、その1つ前の行に対して「型が一致しません」とでてしまいます(ノ∀;) Accessを読み込んだ後は特に複雑なことはしないので(足したり参照する程度)、ここさえのりきれば・・・なのですがエラーばかりでて困ってます(ノД`) それともdb1.mdbファイルじたいがなにか読み込めない形式になってることが原因なのでしょうか? VB超初心者にもわかるようにコメントいただけると嬉しいですM(__)M

  • VBscriptでXMLデータの抽出に関する質問

    教えて下さい。以下のようなXMLファイルがあります。 <?xml version="1.0" encoding="Shift-JIS"?> <ROOT> <INFO> <NO>0001</NO> <NAME>ABC</NAME> <COMMENT> </COMMENT> <AGE>30</AGE> </INFO> </ROOT> これを以下のようにVBScriptにてデータを取り出したいです。 Dim DOM, docRoot, node, nodeList, i, m Dim objADO, objADO2 Dim objRS Dim sqlstmt, strSQL Dim no, comment 'DOMオブジェクト生成 Set DOM = CreateObject("Microsoft.XMLDOM") '同期モード DOM.async = True 'XMLを読み込む DOM.load("11.xml") 'ルートセット Set docRoot = DOM.documentElement 'ノードの設定 Set nodeList = docRoot.selectNodes("/ROOT/INFO") 'ループ For Each node In nodeList For i = 0 to node.ChildNodes.length - 1 Select case node.childNodes(i).nodeName case "NO" no = node.childNodes(i).firstChild.nodeValue case "COMMENT" comment = node.childNodes(i).firstChild.nodeValue End select Next Next ところがCOMMENTタグのようにデータが空のものがあると 「オブジェクトがありません」とエラーになります。 if Not IsNull(node.childNodes(i).firstChild.nodeValue) then というようにもやってみましたが、これでも同じエラーとなってしまいます。 何か方法はないでしょうか?アドバイスを宜しくお願いします。

    • ベストアンサー
    • XML
  • PHP4でのXMLデータの取り扱い

    Webサービスを利用してXMLデータを取得するスクリプトをPHPで書いています。レンタルサーバの関係でバージョンは4.4.4しか使えません。 XMLを扱う関数というと、PHP5ではsimpleXMLやXMLReaderなどがあるようで、各要素へアクセスするにも $xml=simplexml_load_file('books.xml'); foreach($xml->book as $book){ .... という感じでオブジェクトとしてアクセスできるようですが、こういうのをPHP4で実現する方法はないのでしょうか?例えば入れ子になったデータだと、深い階層にたどりつくために foreach($results as $key => $value){ foreach($value $key2 => $value2){ foreach($value $key3 => $value3){ ... } } } みたいな感じで書いているのですが、まったくスマートではないですし、なにか間違っているような気がします。良い方法があればお教えください。よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 初心者です。

    はじめまして。.Net 2003をで開発をしております。 基本的ではありますが、質問させて下さい。 型指定のデータセットを使用する場合は、 データセットのテーブル名/列名と DBのテーブル名/列名と同じにしておく必要があるのでしょうか? 例) adoAdapter.Fill(DataSet, TableName) 上記を実行した場合にDBの列名とデータテーブルの列名が 異なっても大丈夫か? 宜しくお願いします。

  • XML Schemaの名前空間

    XML Schemaを利用する際、名前空間としてhttp://www.w3.org/2001/XMLSchemaを定義する必要があります。上記の末尾に.xsdを追加し、ブラウザで開くと、組み込みデータ型が定義してあるファイルを参照できます。XML Schemaを利用してXMLの検証を行うアプリは、名前空間を元にこのファイルを参照して、組み込みデータ型の検証を行うのでしょうか。いまいち挙動がわかりません。

    • 締切済み
    • XML

専門家に質問してみよう