こんばんわ。
今、ASPでAccessにデータを登録したり削除したり、Accessのデータを検索したりするページを作ってみています。
登録はうまくできるようになったのですが、文字列をキーにしてデータベースを検索し、その結果をASPで表示させる際、データを結合して表示させることってできますでしょうか?
具体的には、
アクセスのフィールド名は名前(姓)、名前(名)と別れているのですが、ASPで表示させるときは一覧表の中で、名前と姓をくっつけて、表示させたいと思っています。
<アクセス>
名前(姓) | 名前(名) | 生年月日
山田 | 太郎 | 1900/8/1
<ASPでの表示>
名前 | 生年月日
山田 太郎 | 1900/8/1
以上、宜しくご教授ください。。
No.2ベストアンサー
- 回答日時:
SQL文の文字列連結方法が「&」ではなく、「+」で行う必要があります。
SQL自体の文字列連結を「&」でやっているためにエラーになっていると思いますので、下記のようにやってみてください。
set db = CreateObject("ADODB.Connection")
set rec = CReateObject("ADODB.Recordset")
db="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("meibo.mdb")
StrSQL = ""
StrSQL = StrSQL & "select "
StrSQL = StrSQL & " name_sei_kan + name_na_kan as name,"
StrSQL = StrSQL & " name_sei_hira + name_na_hira as hira, "
StrSQL = StrSQL & " post_number, "
StrSQL = StrSQL & " pref + city + mansion as jyusyo, "
StrSQL = StrSQL & " dochi, "
StrSQL = StrSQL & " kankei, "
StrSQL = StrSQL & " print "
StrSQL = StrSQL & " from meibo order by name_sei_kan" & ""
以上、ご参考になれば幸いです。
No.3
- 回答日時:
あなたがダメと言っているのは、文字列の連結以前のところですので、まずは文字列の連結はおいといて、名前だけを一覧表示するように作ってみてはどうですか?
No.1の回答者さんのコードで動かなかったから、下記の独自のコードを書いたのでしょうか?
Set rec1 = rec.open(StrSQL)
このコードは、まったく意味が通りません。
データベースからデータを取得するには、
まず、データベースをオープンする必要があります。
そのうえで、オープンしたデータベースに対して、SQL を発行し、レコードセットを取得する必要があります。
No.1の回答者さんのコードは、少なくともそういう作りになっています(私は実際試した訳ではありませんが)。
No.1
- 回答日時:
やり方しだいだと思いますよ
1) DBへ投げる SQLでフィールドの結合を行う
2) ASP側でフィールドの結合を行う
Table名 Sample
名前(姓) Name1
名前(名) Name2
生年月日 Birthday
といったテーブル構造でADOで接続なら
set cn = CreateObject("ADODB.Connection")
set rs = CReateObject("ADODB.Recordset")
cn.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & Server.MapPath("Sample04.mdb")
cn.Open
rs.open "SELECT Name1 & Name2 as Name, Birthday From Sample",cn,2,3,1
とすれば rs(0)『または rs("Name")』に姓、名の連結されたデータを取得できます
rs.open "SELECT Name1, Name2, Birthday From Sample",cn,2,3,1
とすると
rs(0)に姓、rs(1)に名が取得できるので
Respose.Writeなどで rs(0) & rs(1) などといった使い方ができるでしょう
データの表示方法などをどのようにするか提示した方がより適切なアドバイスが得られるでしょう
この回答への補足
ご回答ありがとうございます。
勉強中なのでいまいちわからなかったのですが、頂いた
アドバイスを参考に下記のように明記しましたがダメでした。
set db = CreateObject("ADODB.Connection")
set rec = CReateObject("ADODB.Recordset")
db="Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & _
Server.Mappath("meibo.mdb")
StrSQL = ""
StrSQL = StrSQL & "select "
StrSQL = StrSQL & " name_sei_kan & name_na_kan as name,"
StrSQL = StrSQL & " name_sei_hira & name_na_hira as hira, "
StrSQL = StrSQL & " post_number, "
StrSQL = StrSQL & " pref & city & mansion as jyusyo, "
StrSQL = StrSQL & " dochi, "
StrSQL = StrSQL & " kankei, "
StrSQL = StrSQL & " print "
StrSQL = StrSQL & " from meibo order by name_sei_kan" & ""
Set rec1 = rec.open(StrSQL)
( Set rec1 = rec.Execute(StrSQL)←これも試したがダメでした)
提示いただいたサンプルと比較すると『cn,2,3,1』に相当する部分の意味がちょっとわからなかったのですが、これが問題なのでしょうか?
それとも根本的にどこか違うのでしょうか?
非常に抽象的で大変恐縮ですが、アドバイスいただけると助かります。
すみませんが宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Outlookメール 連絡先の検索について 〈 ご説明 〉 Windows PC の Outlook 1 2022/09/23 14:43
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 17:07
- Excel(エクセル) ExcelのVLOOKUP関数 7 2022/08/23 06:46
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Outlook(アウトルック) Outlook トップ画 イニシャル変えたい Outlookについてわかる方教えてください。 左のメ 1 2022/11/06 23:58
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。 2 2023/07/14 14:06
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/01/12 09:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onedrive にexcelファイルをア...
-
エクセルに張り付けた写真のフ...
-
Excelでボタン(フォームコント...
-
【VB.NET】Excelの最終行までの...
-
【VB.NET】App.configにファイ...
-
キヤノン アソビカメラ iNSPiC ...
-
ffftpでファイル取得が0バイト...
-
VBAでPDFを作成する際、同じ名...
-
VB.NET Excelを読み込んでDataT...
-
aspxをhtmlに変換する方法について
-
vb.netでの記述方法について 以...
-
Windowsで複数のファイルを同じ...
-
連想配列を配列に格納したいで...
-
ITSP番号って何ですか?
-
phpのファイルがブラウザで開か...
-
マクロで同じフォルダにある画...
-
エクセルのファイル名をコピー...
-
SPIの対策は参考書でやるべきか?
-
C#からvbsを実行したい
-
バッチファイル IF文の書き方に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET DataReaderが開かれている
-
Formのデータが欠落することがある
-
DBNULLについて
-
JavaScriptとACCESSデータベー...
-
dbからデータをとりだす際、sql...
-
C言語からデータベースにアクセス
-
struts 2つの選択肢(selec...
-
「XML over HTTP」「非同期HTTP...
-
Column名を変えた時のUpdate文...
-
JSP データベースへの数回の接続
-
三菱GOTの画面切り替えについて
-
腕時計の時報をならないように...
-
htmlで<form>~</form>を並べて...
-
画面遷移を行わずに同一ページ...
-
プログラミングで例えばゲーム...
-
ボタンが活性化の場合とは、ボ...
-
フォーム上で押されたボタンに...
-
ActiveWorkbook.Pathの一つ下の...
-
リクエストに応じたselectedの...
-
フロントエンドフレームワーク...
おすすめ情報