ここに私のコードがあります:
Dim CompanyName, _
CompanyDomain, _
CompanyEmail, _
CompanySupportPhone
Call GetEmailList
Sub GetEmailList
dim sql
dim companydata
sql = ""
sql = sql & " DECLARE @CompanyName VARCHAR(100);"
sql = sql & " DECLARE @CompanyDomain VARCHAR(100);"
sql = sql & " DECLARE @CompanyActivityEmail VARCHAR(100);"
sql = sql & " DECLARE @CompanySupportPhone VARCHAR(100);"
sql = sql & " SELECT"
sql = sql & " @CompanyName = CASE WHEN Setting = 'CompanyName'"
sql = sql & " THEN StringValue ELSE @CompanyName END,"
sql = sql & " @CompanyDomain = CASE WHEN Setting = 'CompanyDomain'"
sql = sql & " THEN StringValue ELSE @CompanyDomain END,"
sql = sql & " @CompanyActivityEmail = CASE WHEN Setting = 'CompanyActivityEmail'"
sql = sql & " THEN StringValue ELSE @CompanyActivityEmail END,"
sql = sql & " @CompanySupportPhone = CASE WHEN Setting = 'CompanySupportPhone'"
sql = sql & " THEN StringValue ELSE @CompanySupportPhone END"
sql = sql & " FROM ClientSettings"
sql = sql & " WHERE Setting in ('CompanyDomain','CompanyActivityEmail','CompanySupportPhone','CompanyName')"
sql = sql & " SELECT ISNULL(@CompanyName, '') AS CompanyName, ISNULL(@CompanyDomain, '') AS CompanyDomain, ISNULL(@CompanyActivityEmail, '') AS CompanyEmail, ISNULL(@CompanySupportPhone, '') AS CompanySupportPhone"
set companydata = getRecordset(sql)
CompanyName = companydata("CompanyName") ' LINE 80
CompanyDomain = companydata("CompanyDomain")
CompanyEmail = companydata("CompanyEmail")
CompanySupportPhone = companydata("CompanySupportPhone")
companydata.Close
Set companydata = Nothing
End Sub
これはエラーをスローします:
80行目
要求された名前または序数に対応するコレクション内にアイテムが見つかりません。
上記の80行目にマークを付けました。SQL Server Manager でこれとまったく同じ SQL を実行すると、結果が返されます。
CompanyName CompanyDomain CompanyEmail CompanySupportPhone
MyCompanyName http://localhost MyCompanyName@email.com 801-555-1212
私がここで間違っていることは何か分かりますか?
GetRecordSet は、データベース呼び出しを正しくロードして処理します。この関数は、他の 1,000 の場所で機能します。問題はそこにないと確信しています。