私のしたいことは、
(1)リンクボタンを押すと、
(2)csvファイルを作成し、
(3)作成したcsvファイルのダウンロードを行う
というものです。

そこで、以下のようなプログラムを作成したのですが、上手くいきません。
まず、リンクボタンは
<% Response.Write"[<a href=" & FileName & " onclick='set()'>保存</a> ]" %>


次に、関数化したプログラムは、
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
<!--
sub set()
Dim i, fs,csv,flnm

flnm=<% = Request.Form("FileName") %>

Set fs = CreateObject("Scripting.FileSystemObject")
Set csv = fs.CreateTextFile(flnm,True)

'項目名を書き込む

'Serverからデータを取得
strSQL="select * from dtTbl "
Set rs = db.DbCreateDynaset(strSQL,0)
rs.MoveFirst

'データがなくなるまで繰り返す
Do Until rs.EOF=True

dtSQL=""
For i=0 to 17
dtSQL = dtSQL & rs.fields.item(i).value & ","
Next
dtSQL=dtSQL & rs.fields.item(18).value

'ファイルに書き込む
csv.WriteLine(dtSQL)

'次の行を読み込む
rs.MoveNext
Loop

'ファイルを閉じる
csv.Close
end sub
-->
</SCRIPT>


このプログラムは関数にしなければ正常に動作していました。
簡単なJavaScriptの関数を変わりにおいてみたところ、
そのプログラムは正常に動作したので、onclickは使えると思うのですが・・・
どこが間違っているのでしょうか?
ちなみにこの他の部分も、VBScriptで作成しています。
今日中に仕上げなければならないので、困っています。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

根本的にクライアントサイドとサーバーサイドを一緒に考えていらっしゃるようで・・・(^^;



  onclick="set()"



  <SCRIPT LANGUAGE="VBScript" RUNAT="Server">
  </SCRIPT>

内にある関数は呼び出せません。

クライアントサイドから呼び出せるのは(基本的には)クライアントサイドの関数だけです。

この回答への補足

では、
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
ではなく、
<SCRIPT LANGUAGE="VBScript">
とすればよいのでしょうか?

しかし、
(1)行3:識別子がありません。
(2)行63:構文エラーです。
と、2つのエラーがでてきてしまいます。

関数にしなければ動作するのですが、
関数にする時には、プログラムの書き方も違ってくるのでしょうか?
    

補足日時:2002/01/30 11:02
    • good
    • 0
この回答へのお礼

基本的なところがわかっていなかったようです。
まだまだ勉強がたりませんね。
結局、この部分は関数化するのはやめました(^。^;
別の方法で完成させました。
でも、別の関数を作成することができました。
ありがとうございました。

お礼日時:2002/01/31 10:18

私も似たような質問を以前ここでし、皆さんのおかげで解決しました。

(質問番号114813)
ただ違うのは(2)csvファイルを作成の部分は、ファイルを作成せずにそのままcsvファイルをダウロードさせる方法です。
以下その方法です。

リンク元のリンク部分
<a href="csvdown.asp?FILENAME=<%Response.Write FileName%>">保存</a>

csvdown.aspの先頭(<body>や<html>などはすべてとる)
<%
Response.ContentType = "text/csv"
Response.AddHeader "Content-Disposition","filename=" & Request("FILENAME")
'CSVデータを作成
Response.Write "1,2,3" & vbNewLine
Response.Write "2,3,4" & vbNewLine
%>
ただ方法か違うため「VBScriptの関数化」の回答にはなってませんね

参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=114813
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
結局、昨日なんとか完成しました!!
こういう方法もあるのですね。
これからの参考にさせていただきます(^。^)

お礼日時:2002/01/31 10:15

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBSからのサーバサイドのEXEの実行

こんにちはSHIRAOといいます。
WScript.Shellを使用してサーバにあるEXEファイルを
起動しようと思っているのですがどうもうまくいきません。WScript.Shellを使用する時に何か設定しなければならないことがあるのでしょうか?

<script language="vbscript">
Function Window_OnLoad
:
Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "C:\WINDOWS\system32\notepad.exe"
:
End Function
</script>

Aベストアンサー

>Set objShell = WScript.CreateObject("WScript.Shell")
何か、エラーが出ていたかと思いますが……。

<script language="vbscript">
として、この領域は、Windowsと違うはずですから、直接、Wscriptのメソッド自体は、使えないはずです。

Set objShell = CreateObject("WScript.Shell")

と、してみてください。

一応、Set objShell = Nothing は入れたほうがよいかもしれませんね。

Q と <% %>は違うの??

ASP開発をしています。

あるASPでIncludeファイルで配列宣言
Dim gsABC(10)を宣言します。

Includeファイルの中身
<Script Language="VBSCRIPT" RUNAT="SERVER">
Dim gsABC(10)
</script>

そして、ASPファイルでその変数gsABC(0)を
使おうとするとエラーが発生します。

けれども、Includeファイルの中身を
<%
Dim gsABC(10)
%>

にすると正常に動きます。
2つは同じものだと思っていたのですが、
これによって違うものなのかと認識するように
しなければと思ってますが・・・

どこが違うのか分かりません。

どなたか分かりやすく簡単でいいですから
説明して頂けないでしょうか?
よろしくお願いします。

Aベストアンサー

おすすめは後者の 「 <% Dim gsABC(10) %> 」です。
Includeでしたら別に構いませんが、前者だとASPやHTMLに拡張子を決めてしまうとソースが丸見えです。
開発でもやりましたが、VB系のソースは基本的に後者だと思っています。

参考URL:http://tryasp.winscom.co.jp/sample/

QVBS★Excel★スクリプト★引数の取得

VBSは初心者というか、やったことがありません。ど素人になります。
説明がとてもぎこちないのもその辺からだと思いますが、宜しくお願いします。
VBのシステムからVBSファイル
<内容>
Dim wbname
Dim mypara
Dim file_path
Dim oApp
file_path = "C:\share\Excel\1234.xls"
Set oApp = CreateObject("Excel.Application")
oApp.Visible = True
On Error Resume Next
oApp.UserControl = True
oApp.Workbooks.Open "C:\share\Excel\1234.xls"
Set oApp = Nothing
WScript.Quit
を指定して起動すると(1)Excelで作成したシステムが稼動するように作りたいのですが、(1)を起動する環境設定があり、C:\Documents and Settings\MBS\デスクトップ\1111.vbs #CODE
#CODEが引数になります。
その#CODEをVBSで取得したいのですが、単体で1111.vbsを動かすとExcelファイルは動きます。
元のシステムではexeファイルしかみないようなのですが、例えば電卓とかメモ帳とかは動きます。vbsファイルだけは動きません。どのようにすれば動くかアドバイスをお願いします。
宜しくお願いします。

VBSは初心者というか、やったことがありません。ど素人になります。
説明がとてもぎこちないのもその辺からだと思いますが、宜しくお願いします。
VBのシステムからVBSファイル
<内容>
Dim wbname
Dim mypara
Dim file_path
Dim oApp
file_path = "C:\share\Excel\1234.xls"
Set oApp = CreateObject("Excel.Application")
oApp.Visible = True
On Error Resume Next
oApp.UserControl = True
oApp.Workbooks.Open "C:\share\Excel\1234.xls"
Set oApp = Nothing
WScript.Quit
を指定して起動する...続きを読む

Aベストアンサー

VBScript の中で

WScript.Arguments(0)

のようにすれば一つめの引数を取得できます。
>例えば電卓とかメモ帳とかは動きます。vbsファイルだけは動きません。
の意味が良くわかりません。
質問文のプログラムではそういう部分が無いようですが・・

QASP上のVB SCRIPT記述(result setからcountを取得する方法)

初心者です。
ASP上のVB SCRIPT記述(result setからcountを取得する方法)が分かりません。

Set rsRet= MyConn.Execute(strSql)
nCltCnt = 0
If Not rsRet Is Nothing Then
nCltCnt = rsRet.Count
End If

という記述をしたのですが、エラーになります。メッセージは以下の通りです。

●エラー タイプ
Microsoft VBScript 実行時エラー (0x800A01B6)
オブジェクトでサポートされていないプロパティまたはメソッドです。: 'Count'
xxx.asp, line 110


サポートされていないのであれば、result setからの件数の取得を教えて下さい。
どなたかアドバイス宜しく願います。

Aベストアンサー

>現在、ADOを使用してます
ADOでは、Countプロパティはありません。RecordCountプロパティを使用します。
 nCltCnt=rsRet.RecordCount

ですが、ADOのマニュアルを見ると、「前方スクロールカーソル」ではレコード数が取れないこと、「プロバイダやカーソルタイプ」によってはサポートしないことが明記されています。ですので、
 Set rsRet=MyConn.Execute(strSql)
では、前方スクロールとなるため、取得できません。
ですので、レコードセットのOpenメソッドを使い、前方スクロールカーソルでないタイプを選ぶことと、OLE DBプロバイダがRecordCountプロパティをサポートするかどうかを調べてください。

ちなみに、私はDBがOracleだったので、oo4oを使い、GetRowsメソッドを使い、配列の大きさを見て、レコード数を数えました。

>ミドルウェアって、compatible; MSIE 5.01; Windows NT) ということで宜しいんでしょうか?
ミドルウェアとは、まさに、ADO、DAO、RDO、oo4oのことをさしています。

>将来的にはRDOに変更する
余計なことかもしれませんが、RDOは将来性がないと思います。ADOでもODBCが使えますので、ADOのままにされることをお勧めします。

>各々で使用可能なメソッド
ADOは、ADOがインストールしてあるコンピュータで「ADO*.chm」で検索してもらえば、ヘルプファイルが見つかると思います。
RDOは、ヘルプファイル自身が、情報が少ないので、MSDNをお勧めします。
DAOは、同じく「DAO*.chm」または「DAO*.hlp」でヘルプが見つかると思います。

>現在、ADOを使用してます
ADOでは、Countプロパティはありません。RecordCountプロパティを使用します。
 nCltCnt=rsRet.RecordCount

ですが、ADOのマニュアルを見ると、「前方スクロールカーソル」ではレコード数が取れないこと、「プロバイダやカーソルタイプ」によってはサポートしないことが明記されています。ですので、
 Set rsRet=MyConn.Execute(strSql)
では、前方スクロールとなるため、取得できません。
ですので、レコードセットのOpenメソッドを使い、前方スクロールカーソルでないタ...続きを読む

QVBSでのファイル読込、出力操作について

いつもありがとうございます。

掲題の件について、ご教授頂けますでしょうか。

下記のように『start.vbs』を実行すると『a.txt』の行に記載されている実行ファイル名を読み込み
『test.vbs』にファイル名分のコマンドを書き込みしたいです。


例)
-----------------------------
start.vbs (作成途中)
-----------------------------
Set objWShell = CreateObject("wscript.shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile("c:\a.txt", 1, False)

' 出力先ファイル
Set objVBSFile = objFSO.CreateTextFile(c:\test.vbs, True)

If Err.Number > 0 Then
WScript.Echo "Open Error"
Else
Do Until objFile.AtEndOfStream
objVBSFile.WriteLine(objFile.ReadLine)
Loop
End If


-----------------------------
a.txt
-----------------------------
adobe.exe
photoshop.exe
****.exe
   ・
   ・
   ・

------------------------------
start.vbs
------------------------------
objWShell.Run "cmd.exe c:\adobe.exe ", 0, True
objWShell.Run "cmd.exe c:\photoshop.exe ", 0, True
objWShell.Run "cmd.exe c:\****.exe ", 0, True
   ・
   ・
   ・

vbsをサイトを参考にして作ってはいるものの、start.vbsを実行すると
a.txtのファイル名をvbsに書き込むのが限界です。
少しずつ勉強していくのですが、本件少し早めに作りたいという背景があり
ご教授頂けませんでしょうか。

また、わかりにくい説明となっておりますが
どうぞ宜しくお願い致します。

いつもありがとうございます。

掲題の件について、ご教授頂けますでしょうか。

下記のように『start.vbs』を実行すると『a.txt』の行に記載されている実行ファイル名を読み込み
『test.vbs』にファイル名分のコマンドを書き込みしたいです。


例)
-----------------------------
start.vbs (作成途中)
-----------------------------
Set objWShell = CreateObject("wscript.shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFile = objFso.OpenTextFile("c:\a.txt", 1, False)

'...続きを読む

Aベストアンサー

No2だが、書き忘れたことが、
http://msdn.microsoft.com/ja-jp/library/cc392209.aspx

ユーザーガイドの章だが、さらっとよむと30分もあれば、さらっと読める程度の物。いわば概略と呼べる物で、小説で言えばプロローグ程度の物で、ここに本文のキーが凝縮されている物だ。本の読み方の講習だね。

まず、だまされたと思って、ここを最後まで読んでみよう。作成のヒントが凝縮されて書きこまている。200ページ程度のサル本が凝縮されて記載されている。

このようなサイトをサーフィンしてゆくと、本の読み方とか、より良い自分にあった、探していた本を、どのように探し、みいだすのか自分で気がつくものだ。知りたいところをまずみる。そこに自分が知りたい事がどのように記載されているか、抜き出す。それに、どれだけ短時間に出会えたか? それが、あなたにとって最も重要な事。

Aベストアンサー

gotoPageFromAA011
という関数は、JavaScriptの関数です。

書き方や呼び出し方云々の問題ではなく、直接実行はVBScriptで行える場所にはありません。

Call gotoPageFromAA011()
↑よってこの部分は不要です。


要は、ログインボタンエレメントを取得して、クリックさせてあげると、中で勝手にJavaScriptが実行します。


gotoPageFromAA011をコメントアウトし、以下のコードを追加してください。

'Call gotoPageFromAA011() ← コメントアウト

'↓以下追加
Call SubmitFunctionCall(objIE.Document)

Sub SubmitFunctionCall(p_doc)
Dim l_divLogin
Set l_divLogin = p_doc.getElementById("loginForms")

Dim l_divSec
Set l_divSec = l_divLogin.ChildNodes(0)

Dim l_htmTbl
Set l_htmTbl = l_divSec.ChildNodes(0)

Dim l_htmTblRow
Set l_htmTblRow = l_htmTbl.Rows(0)

Dim l_htmTblCell
Set l_htmTblCell = l_htmTblRow.Cells(1)

Dim l_htmBtn
Set l_htmBtn = l_htmTblCell.ChildNodes(0)
Call l_htmBtn.Click()
End Sub


ってかこの手の質問は、「ASPカテゴリ」ではなく、「JavaScriptカテゴリ」か「VBカテゴリ」に質問した方が素早い回答を得られますよ。

gotoPageFromAA011
という関数は、JavaScriptの関数です。

書き方や呼び出し方云々の問題ではなく、直接実行はVBScriptで行える場所にはありません。

Call gotoPageFromAA011()
↑よってこの部分は不要です。


要は、ログインボタンエレメントを取得して、クリックさせてあげると、中で勝手にJavaScriptが実行します。


gotoPageFromAA011をコメントアウトし、以下のコードを追加してください。

'Call gotoPageFromAA011() ← コメントアウト

'↓以下追加
Call SubmitFunctionCall(objIE.Document)

Sub Subm...
続きを読む

QSQLServer2005のストプロでxp_cmdshellを使いvbsファイルを実行できない

ストプロ内でxp_cmdshellを使用し、vbsファイルを実行したいのですが実行できません。
vbsファイルはxp_cmdShellでキックされたらSQLサーバのデータをSELECTし、テキストファイルにSELECTで取得した行数だけ行を追加するという内容です。
vbsファイルはコマンドプロンプトから実行すると動くので正しいと思います。

ストプロにはvbsファイル実行の前後にtableのupdate作業があり、
その2つは行われます。しかし、書き出されるはずのデータがテキストファイルに書き出されません。
vbsファイルは実行されていないようですがエラーは出ず正常終了となり、
xp_cmdshell実行後の戻り値は0で成功となっています。
xp_cmdshellオプションは有効になっており、は混合モードでSysAdminの権限を持つユーザーで処理をしています。

また、ストプロではなく、SQLServerManagementStudioから下記のようにvbsファイル実行しようとした場合、エラーなく正常終了するのですがテキストファイルにデータは追加されていません。
 EXEC @result = xp_cmdshell 'Cscript c:\AddRow.vbs'
しかし、EXEC xp_cmdshell 'dir *.exe'は実行できます。

vbsファイルをxp_cmdshell で実行するときは何か特殊な記述が必要なのでしょうか。何がいけないのかわからず困っております。お気づきのことがありましたらご指摘いただけますようお願い致します。
以下にストプロの中身をを記述します。


BEGIN

  SET NOCOUNT ON;

-- テーブルのアップデート処理
  UPDATE table1 SET Status = 1
  WHERE Status = 0

--ファイル書き出しvbsの実行
  DECLARE @result int
  SET @result = 1
  EXEC @result = xp_cmdshell 'Cscript c:\AddRow.vbs'
--ここは下記のようにCscriptを抜いても試しましたがだめでした。
--EXEC @result = exec master..xp_cmdshell 'c:\AddRow.vbs'

  IF (@result = 0)
  BEGIN
--xp_cmdshellの実行が成功したときのみこの処理に入る予定。
--実際は実行されていないようだが@result が0なのでこの処理を行っている。
    UPDATE table1 SET Status = 2
    WHERE Status = 1
  END
END

ストプロ内でxp_cmdshellを使用し、vbsファイルを実行したいのですが実行できません。
vbsファイルはxp_cmdShellでキックされたらSQLサーバのデータをSELECTし、テキストファイルにSELECTで取得した行数だけ行を追加するという内容です。
vbsファイルはコマンドプロンプトから実行すると動くので正しいと思います。

ストプロにはvbsファイル実行の前後にtableのupdate作業があり、
その2つは行われます。しかし、書き出されるはずのデータがテキストファイルに書き出されません。
vbsファイルは実行...続きを読む

Aベストアンサー

当たり前ですが、このvbsはSQL Serverのサービスが実行します。

つまりSQL Serverのサービスを動かしているプロセスがvbsを実行出来なければいけません。もちろん、書き込みを行なうテキストファイルに対する権限も必要です。

「SQL Server構成マネージャ」でサービスを動かしているユーザを確認してください。このユーザでvbsが実行できるようにしてください。

Q"<%=date変数%>" を "<%=date18(←仮数字)%>"とHTML上で表示させたい

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   Do Until a > 26
    if a <> num then
%>
     cal<%=a%>.hide();
<%
    Else
    End if
    a = a + 1
   Loop
   Response.Write str
   Response.Write " "" "
%>
   onChange="ca<%=num%>.getFormValue(); cal<%=num%>.hide();" value="<%=date<%=num%>%>"【←問題の箇所です】>
   <br>
   <div id="caldiv<%=num%>"></div>
<%End Function%>

いつもお世話になっております。
現在ASPでプログラムを作成していますが。

<%= %> で囲まれた中に更に変数(<%= %>)を入れることになりました。
どの様にすれば
HTMLソースに value="<%=date変数%>"と表示出来ますか
アドバイスお願いいたします。

以下ソースを記載します。

<!-- カレンダー設置関数 -->
<% Function cal(num)
   Dim a
   Dim str
%>
   <input type="text" name="date<%=num%>" id="date<%=num%>" onClick="cal<%=num%>.write();
<%
   a = 2
   ...続きを読む

Aベストアンサー

実際に試したわけじゃないですけど、普通に &lt;%=date変数%&gt; で
できませんか。
(実体参照)

QVBSに関する質問

VBSを使ってプログラムを作りたいのですが、
visual studioを使ったデバッグの方法について教えてください。

バージョンはvisual studio express 2013で最新バージョンです。
OSはwin8 64bitです。


・とりあえず、
http://winscript.s41.xrea.com/wiki/index.php?%5B%5B%A5%A8%A5%C7%A5%A3%A5%BF%2FVWD2005%5D%5D
のページにあるように、
タイトル VBSスクリプトの実行(&R)
コマンド C:\WINDOWS\system32\wscript.exe
引数 $(ItemPath?)

を外部ツールに登録した上で

MsgBox "テスト"

と書かれた適当なvbsファイルをD&Dで読み込ませてみたのですが
コードの色分けが行われておらず全て同じ色になっています。
http://www.koutou-software.co.jp/junk/use-vs-project-with-vbscript.html

このページのようにdimなどを青色に表示するにはどうしたら良いですか?



・MsgBox "テスト"の左横にブレイクポイントの赤い丸を付けて
VBSスクリプトの実行をしたのですが、
特にプログラムを停止することなく実行されてしまうのですが
どうすれば指定した位置でプログラムを止めることができますか?


・あとEXEファイルとして出力したいのですが
ビルド機能が見つからないのですがどうすれば良いですか?


・http://www.koutou-software.co.jp/junk/use-vs-project-with-vbscript.html
このページには
Visual C++としてプロジェクトを作成し、いろいろな設定を行った後にするみたいな解説がありますが
この通りやっても、wscript.exeが見つからないというようなエラーが出て
実行することができませんでした。


少し質問が多いですが
よろしくお願いいたします。

VBSを使ってプログラムを作りたいのですが、
visual studioを使ったデバッグの方法について教えてください。

バージョンはvisual studio express 2013で最新バージョンです。
OSはwin8 64bitです。


・とりあえず、
http://winscript.s41.xrea.com/wiki/index.php?%5B%5B%A5%A8%A5%C7%A5%A3%A5%BF%2FVWD2005%5D%5D
のページにあるように、
タイトル VBSスクリプトの実行(&R)
コマンド C:\WINDOWS\system32\wscript.exe
引数 $(ItemPath?)

を外部ツールに登録した上で

MsgBox "テスト"

と書かれた適...続きを読む

Aベストアンサー

推測による所などもあり明確な回答ではありませんが、一部について回答します。
便宜上、質問項目を上から順に番号付けて記載します。


(1)および(2)について。
Visual Studio Express 2013 には3種類のバージョンがありますが、(1)のリンク先に示される Web Developer に相当するのは「Express 2013 for Web」というバージョンです。
このバージョンを利用しているでしょうか?
# 当方はfor Webをインストールしていないので、それを使えばできるのかどうかははっきりとはわかりませんが。。


(3)について。
VBS (VBScript) を利用するのであればexeにはできません。
VBSはその名の通りスクリプトとして実行する目的のものですので、そもそもexeなどのバイナリを作らずに実行したい場合に使うものです。
exeにしたいのならば、たとえばVB.NETなどを利用を検討する必要があります。
(そして個人的には、VB.NETを使うぐらいならC#をおすすめしますが。VB.NETと基本的にプログラムの作り方は同じで、書きやすさが断然上だと思うので。あくまで個人的主観による。)


(4)について。
リンク先にも書かれていますが、その手順は製品版のVisual Studioを利用する場合のものかと思います。
製品版のVisual StudioはExpressのように種類が分かれていないため、C++のプロジェクトを流用してスクリプトデバッガを起動することなどが出来るのだと思います。

ちなみに、当方の手元では「Visual Studio Express 2013 for Windows Desktop」がインストールしてあるのですが、これにはスクリプトデバッガは含まれていないようです。
# コマンドラインから「wscript //x script.vbs」のようにしてもVS2013が選択肢に出てこないので、たぶん。
そのため、「for Windows Desktop」バージョンでメイクファイルプロジェクトを利用しても同じことをするのは不可能そうです。

推測による所などもあり明確な回答ではありませんが、一部について回答します。
便宜上、質問項目を上から順に番号付けて記載します。


(1)および(2)について。
Visual Studio Express 2013 には3種類のバージョンがありますが、(1)のリンク先に示される Web Developer に相当するのは「Express 2013 for Web」というバージョンです。
このバージョンを利用しているでしょうか?
# 当方はfor Webをインストールしていないので、それを使えばできるのかどうかははっきりとはわかりませんが。。


(3)について。
VB...続きを読む

Q『列名 '担当者CD' があいまいです。』

VS2005のASP.NETで開発しております。
ここで、SelectCommandにて、2つ目のテーブルより名称を参照しようとJOIN関数をしようしましたら『列名 '担当者CD' があいまいです。』とのエラーメッセージです。 これはどこが悪いのでしょうか?
いろいろ修正してみたのですが解りません。
解る方がおりましたらアドバイスを頂けないでしょうか?
よろしくお願いいたします。

Aベストアンサー

複数のテーブルから、同じ名前の列をとりだす場合、どちらのテーブルの値なのか特定できないため、このエラーがでます。
なので、担当者CDの前にテーブル名をつけましょう。

例えば以下のようなテーブルがふたつあるとして…
テーブル1
担当者CD
担当者名

テーブル2
ID
担当者CD

SELECT テーブル2.担当者CD
FROM テーブル2
INNER JOIN テーブル1
ON テーブル1.担当者CD=テーブル2.担当者CD
WHERE テーブル2.担当者CD='99999'
ORDER BY テーブル2.担当者CD

のように書きます。(列が多い場合は、テーブルに別名をつけてあげると、多少、楽できるかも)


人気Q&Aランキング