質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

1回答

7201閲覧

コンボボックスの初期値の設定

zakky79

総合スコア23

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2018/08/28 00:14

編集2018/08/28 15:14

現在Web画面を作成しており、Accessのデータテーブルの一覧を表示しています。登録ボタンを押すと、登録画面へ移り、コンボボックスが3つありそれぞれ選択し、登録します。登録された情報は一覧画面に追加されます。もう1つ、更新ボタンがあり、それは登録された情報を変更するためのものです。
ここからが分からないところなんですが、画面は入力画面と同じですが、元々登録されていた情報をコンボボックスの初期値にしたいのですがら現在は空白のままです。

asp

1DbCur.Fields(1).Value

で、更新したい行の各コンボボックスに表示したい値は取れるのですが、それをどうやって使えばいいのかが分かりません。引数で追加してみたり、コンボボックスの関数内で色々試してみましたがうまくいきませんでした。
アドバイス、ご指導のほどよろしくお願い致します。

分かりづらくてすいません。
コンボボックスというよりプルダウンメニューの方が正しいのですかね?

ASP.NET

1<select name="XXX"> 2<option value=“59”>1984/昭和59年 3<option value=“60”>1985/昭和60年 4<option value=“61” selected>1986/昭和61年 5</select>

これだと1986/昭和61年がプルダウンメニューの初期値になります。
中身がベタ打ちではなく、Accessのデータマスタの情報だった場合、どう記述すればよいのか…が分からないです。

現在使っているコンボボックスを構成する関数

ASP.NET

1Sub Combo(strItem,strTable,strSDate,intChange,ByRef obj) 2 Dim strBuf,strBufA 3 Dim objSet 4 Dim strSQL 5 6 strItem = Trim(strItem) 7 strTable = Trim(strTable) 8 strSDate = Trim(strSDate) 9 intChange = Trim(intChange) 10 11if intChange Then 12obj.Response.Write("<SELECT NAME=""" &strItem& """SIZE=1 onChange="selChange(this.option[this.selectedIndex].value);"">") 13Else 14obj.Response.Write("<SELECT NAME=""" &strItem& """ SIZE=1>") 15 16sreSQL="Select A,B" 17strSQL=strSQL & "From データマスタ" 18strSQL=strSQL & "order By 表示順 19 20obj.Response.Write("<OPTION VALUE="""" ") 21if pstrItem15="" Then 22obj.Response.Write("SELECTED") 23End if 24obj.Response.Write("></OPTION>) 25 26if pstrItem15=strBufA Then 27obj.Response.Write("<OPTION VALUE= "&strBufA & "SELECTED>"& strBuf & "</OPTION>") 28Else 29obj.Response.Write("<OPTION VALUE="&strBufA & ">" & strBuf & "</OPTION>") 30End if 31objSet.MoveNext() 32objSet.Close() : obj.Set=Nothing 33obj.Response.Write("</SELECT>") 34End Sub

この関数を以下で呼び出しています。

ASP.NET

1Call Combo("Item15","データマスタ","2003/11/11",True,obj)

初期値を設定しているのはSELECTEDというのは調べて分かったのですが、DbCur.Fields(1).Valueをどう設定すればよいのかがわかりません。

宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/08/28 02:27

何を作っているか(クラシック ASP なのか ASP.NET なのか。後者なら Web Forms なのか MVC なのかその他なのか)と、開発環境(OS, .NET, Visual Studio のバージョンなど)を書きましょう。
zakky79

2018/08/28 02:31

ASP.NETです。Web画面を作っています。環境はWindows10、sakuraエディターを使用しています。
退会済みユーザー

退会済みユーザー

2018/08/28 02:31

クラシック ASP なら ASP.NET のタグは外してください。ASP.NET なら「コンボボックス」とは何かを説明してください。
退会済みユーザー

退会済みユーザー

2018/08/28 02:34

> 環境はWindows10、sakuraエディターを使用しています。← Visual Studio は使ってないと言ってますか? だとすると、自分はたぶん話はできないと思います。
zakky79

2018/08/28 02:35

Accessにデータマスタがあり、それをコンボボックスで選択し、各項目を選択後、oKボタンを押すと、Accessのテーブルに登録できるように設定しています。
退会済みユーザー

退会済みユーザー

2018/08/28 02:40

その説明ではここに書いてあること以外は知り得ない第三者にはほとんど何も分かりません。一度 https://teratail.com/help/question-tips を読んでください。それにも書いてありますが、今は「自分が今『何がわからないのか』がわかっていて、言語化できている」というところが不十分で、「何がわからないかわからない人から質問を受けても、答える側も困ってしまいます」という状況です。
zakky79

2018/08/28 02:43

整理して編集します。
yukihisa

2018/08/28 03:56

ソースコードがないと仕様だけ書かれてもわけわかめですよ。その仕様に対してやりようは何通りもあるのですから。
yukihisa

2018/08/28 06:13

ソースコードと言っているのになぜベタ打ちしたセレクトボックスを。。。?今現在動いているor開発途中のソースコードをきちんと提示してください。
退会済みユーザー

退会済みユーザー

2018/08/28 07:21 編集

ASP.NET Web Forms アプリの話ですよね? 質問者さんの課題・問題を示す必要最低限のサンプルコードを書いてそれをアップして下さい。そうしてもらわない限り話が通じるとは思えません。なお、あくまで必要最低限でお願いします。長ーいコードをベタっと張るのはダメです。
退会済みユーザー

退会済みユーザー

2018/08/28 22:23

追加していただいたコードを見ましたが、ASP.NET + VB.NET に間違いないですか? クラシック ASP + VBScript ではないのですか?
zakky79

2018/08/28 23:58

そうなんですかね…あやふやですいません。元々あるコードを触っており、見分け方とか全然分からなくて.
退会済みユーザー

退会済みユーザー

2018/08/29 00:15

自分が何を作っているかもわからないようですと、ここのような掲示板で話をして解決するのは到底無理です。元のアプリを作った人とか、Face-to-face で話ができる人に聞くことをお勧めします。
yukihisa

2018/08/29 00:56

業務で触ってるならまず仕様の確認はできるはずでは?というより、環境、言語等の確認は一番最初にしなくてはいけないことです。わからないまま適当にコードいじったらぶっ壊れますよ?
x_x

2018/08/29 01:12

拡張子は.aspxですか? .aspではなく?
zakky79

2018/08/29 01:27

aspxです。
guest

回答1

0

aspxです。

間違いないですか?

ASP.NET Web Forms アプリであれば、質問にアップされたようなコードを書くことはあり得ないと言っても過言ではないと思いますけど。

保守ということですので、私の想像を超える特別な事情があるのかも知れませんが・・・

質問者さんが保守しているのが ASP.NET Web Forms アプリであることが間違いなければ、DropDownList コントロールを使うのがお勧めです。

DropDownList クラス
https://msdn.microsoft.com/ja-jp/library/system.web.ui.webcontrols.dropdownlist(v=vs.110).aspx

上の記事の 2 つめのサンプルコードに DropDownList をデータバインドする方法が書いてありますので、それを参考にしてみてください。

データソースは Access だそうですが、サンプルコードの CreateDataSource を Access から DataTable / DataView を作るように書き換えれば望むことができると思います。

.NET Framework 2.0 以降であれば AccessDataSource が使えますので、全てウィザードベースで自力では一行もコードを書かなくても実装できます。

その具体例は以下の通りです。たったこれだけのコードですみます。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="207-AccesSample.aspx.cs" Inherits="_207_AccesSample" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/Northwind 2007.accdb" SelectCommand="SELECT [CategoryID], [CategoryName] FROM [Categories 2003]"> </asp:AccessDataSource> <asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="AccessDataSource1" DataTextField="CategoryName" DataValueField="CategoryID"> </asp:DropDownList> </form> </body> </html>

投稿2018/08/29 04:18

編集2018/08/29 04:20
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問