1

最初に、コードについて助けが必要なときに行く場所があることを非常に嬉しく思います。助けようとしている人を見るとさらに感謝します。答えがなくても私の質問/問題。

そうは言っても、私の質問/問題を続けてください:

これを機能させようとしていますが、構文エラーが見つからないようです!! :-(

誰でも私を助けてくれませんか...

コードは次のとおりです。

dim strPathtoCSVFolder,strPathtoCSVFile,strPathtoCSVFileTWO

strPathtoCSVFolder="D:\classic_asp\test\" & Request.QueryString("XTNO") & "\Data\"
strPathtoCSVFile="Unit_" & Request.QueryString("XTNO") & "_Year_" & Request.QueryString("year") & "_Q_" & Request.QueryString("q") & "_MERGE_DataCsv.csv"
strPathtoCSVFileTWO="Unit_" & Request.QueryString("XTNO") & "_Year_" & Request.QueryString("year") & "_Q_" & Request.QueryString("q") & "_MERGE_DataCsv_SORTED.csv"

Set Conn = CreateObject("ADODB.Connection")
Set RS = CreateObject("ADODB.Recordset")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathtoCSVFolder & ";Extended Properties=""text;HDR=YES;FMT=Delimited"""
dim strDirInfoX
strDirInfoX="SELECT STATE, SUM(GALLONS) as Total FROM " & strPathtoCSVFile & " GROUP BY STATE "

'''''' response.write strDirInfoX
dim strTxttoMem

dim strsource
strsource="RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001"
RS.Open strsource
'response.write strsource

redim FieldNames(rs.fields.count)
redim FieldTypes(rs.fields.count)
For i = 0 To (rs.Fields.Count - 1)
    FieldNames(i) = cstr(trim(rs.Fields.Item(i).Name))
    FieldTypes(i) = cstr(trim(rs.Fields.Item(i).Type))
Next
RS.Close

RS.Open strDirInfoX, Conn, 3, 3, &H0001
Do Until RS.EOF
''''    for i=0 to ubound(FieldNames)-1
'''     response.write(FieldNames(i) & " = " & RS.Fields.Item(FieldNames(i)) & "<br>")

strTxttoMem=strTxttoMem & RS("STATE") & RS("total")

''  next
    RS.MoveNext
Loop
RS.Close
Conn.Close

dim fs,tfile
set fs=Server.CreateObject("Scripting.FileSystemObject")
set tfile=fs.CreateTextFile(strPathtoCSVFolder & strPathtoCSVFileTWO)


tfile.WriteLine(strTxttoMem)
tfile.close
set tfile=nothing
set fs=nothing

助けてくれてどうもありがとう...

4

4 に答える 4

3

さて、あなたのコードを実行せずに、私はこの部分でエラーを見つけました:

dim strsource 
strsource="RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001" 
RS.Open strsource 

またはそれを短くするために、あなたはこれをしています:

RS.Open "RS.Open " & strDirInfoX & " , Conn, 1, 3, &H0001" 

に変更するとRS.Open strDirInfoX, Conn, 1, 3, &H0001、その部分の実行が向上します。

于 2012-05-25T12:23:01.063 に答える
1

これに答えるのはほとんど不可能です。複数のエラーが発生する可能性があり、以前に宣言された内容に大きく依存します。たとえば、明示的なオプションは大きな違いをもたらします (推奨されます)。

ブラウザでのデバッグはせいぜい難しいので、このコードをコピーします-私が推測するaspファイルからのものです-そしてそれをvbsスクリプトに入れ、response.writeをwscript.echoに置き換えてコードを実行します。次に、ある行でエラーが発生し、それを修正し、その後、エコーを response.write に置き換えて完了です。

また、Firefox と Firebug プラグインを使用してテストを行うことをお勧めします。そこには、より多くのデバッグ情報が表示されます。少なくとも、Chrome または IE の開発者ビューを使用してください。

成功..

于 2012-05-25T09:25:56.063 に答える
0

ADODB接続で接続するのではなく、ファイルをテキストファイルとして読み取ろうとしましたか?CSVファイルですので、プレーンテキストファイルとして読める場合があります。コンテンツをコンマとループで分割して、必要なものを取得できます。

ADODB接続を使用してアクセスする場合は、ファイルをxlsx拡張機能で保存してみてください(コードを介して内容をコピーするか、手動で保存します。同じコードが機能する場合があります)。

恥知らずにADOの私のブログへのリンクを追加する

http://www.blogger.com/blogger.g?blogID=3033014869583885023#editor/target=post;postID=8274119342550879092

于 2012-05-25T10:39:44.477 に答える
0

しばらく VBScript に取り組んできましたが、tfile.close を tfile.Close にするべきではありませんか?

于 2012-05-24T22:50:38.810 に答える