0

「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーが表示される理由がわかりません。私が知る限り、私は本に従ってすべてを行っているようです。

どんな助けでも大歓迎です。

ありがとう

function test() {
    try {
        alert("running function test...")
        var cn      = new ActiveXObject("ADODB.Connection")
        var sql     = "SELECT * FROM tbl_rssims"
        var db      = "G:\\AS\\Asf\\ASF\\RSSIMS\\db\\rssims.mdb"
        cn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + db + "")

        rs = cn.Execute(sql);

                var trs = [ ];
                while ( ! rs.EOF )
                {
                    var tr = [ ];
                    for ( var td = 1; td <= 2; ++td )
                    {
                        if ( ! rs.EOF ) 
                        {
                            var flds = [ ];
                            for ( var f = 0; f < rs.fields.length; ++f )
                            {
                               flds.push( rs.fields(f).value );
                            }
                            trs.MoveNext();
                            tr.push( flds.join("<br/>") );

                        } else {
                            tr.push( "&nbsp;" );
                        }
                    }
                    trs.push( "<td>" + tr.join("</td><td>") + "</td>\n" );
                }

        rs.close
        cn.close

        var html = '<!DOCTYPE html>\n'
                         + "<html><body" +
             + '<table style="border: none; table-layout: fixed; width: 100%; text-align: left;" cellpadding="0" cellspacing="0">\n'
                         + "<tr>" + trs.join("</tr><tr>") + "</tr>"
                         + '</table></body></html>';
        window.open('','').document.write(html)

    }//end of try

    catch(e) {

        alert(e.description)

    }

}//end of function
4

2 に答える 2

2

エラーをスローしている行がわからないため、質問は非常に困難です...ただし、ここで配列にアクセスする可能性が高いときに関数を呼び出そうとしているようです:

flds.push( rs.fields(f).value );

これをに変更

flds.push( rs.fields[f].value );

そして、あなたは大丈夫なはずです。

編集

これで、window.open メソッドを処理できます...

var win = window.open("","");
win.onload = function() {
    win.document.documentElement.innerHTML = html;
};

これを試して、役立つかどうかを確認できます。ただし、実際のエラーがどこにあるかを知ることは、はるかに役立ちます。

于 2012-11-16T14:02:18.450 に答える
0

オブジェクトの問題は、本来は rs.Movenext() であるはずの trs.movenext() であることがわかりました。HTML の実際の書き込みには何の問題もありませんでした。

みんなの助けに感謝します。

于 2012-11-16T18:26:18.703 に答える