はじめまして。ACCESSの並べ替えについて質問させてください。

個人的に音楽ファイルを管理するためにデータベースを使用していますが、
EXCELのような2~3段階の並べ替えは出来ないものでしょうか?
「日付」を降順で並べ替えた状態で「ID」を昇順で、という感じです。

並べ替えはコントロール類ではなく、フォームやレポートを開く段階で
行えればと思っています。

素人考えでVBAなら何とかなるかと思い、アイデア集も2冊購入しましたが、
どちらにも載っていませんでした。

出来なくて困っているというよりは、出来るのか出来ないのか
分からなくて困っているというのが正直なところです。
ですので「ACCESSでは無理」という回答でも構いませんので、
ご存知の方、よろしくお願いします。

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

A 回答 (2件)

ご希望の回答になるかどうかわかりませんが……。


Accessのmdbデータベースと仮定させて頂きます。

簡単に説明させていただくと、
クエリーを作って、最初の列を「日付」にして、並び替えを”降順”に、次の列を「ID」にして、並び替えを”昇順”とし、
その後に、必要な項目を並べていきクエリーを保存します。
フォームのレコードソースに、作ったクエリーの名前を入れれば、「日付」"降順”の「ID」”昇順”で表示されると思います。
または、クエリーを作らずにフォームのレコードソースからビルダを使って、SQL文が作成できます。

レポートの場合は、”並べ替え/グループ化の設定”で、設定します。

非常にはしょった説明ですが、ヒント程度にでもなれば、幸いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

クエリーの並びをご指摘の通りに変更してフォームを開いたところ
すんなりこちらの意図通りに表示してくれました。
レポートは諦めて手を付けていなかったのでこれから挑戦してみます。

ACCESSについては分からない事だらけなのでまた何かありましたらよろしくお願いします。
ありがとうございました。

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

ACCESSのクエリーでは、左のフィールドから並び替えが優先される


ようになっています。クエリーで並べ替えをして、レポートで出力
時の項目の表示を整えれば希望通りの表が作成できると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

クエリーの並びをご指摘の通りに変更してフォームを開いたところ
すんなりこちらの意図通りに表示してくれました。
クエリーの並びを変えればいいなんて、もしかしたら基本的な事なのかもしれませんね。
もっと勉強してみます。

ACCESSについては分からない事だらけなのでまた何かありましたらよろしくお願いします。
ありがとうございました。

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

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

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

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

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

QACCESS2003のデータアクセスページの使い方について

イントラ内でACCESS2003のデータアクセスページを使いたい。

1.ACCESS2003のデータアクセスページを作成しました。
2.そのMDBファイルと、データアクセスページ(htmファイル)を、WINDOWS2000ServerのInetpub内のwwwrootフォルダの中へ入れました。
3.ここにはイントラ内のHPなどを置いています。(普通に見れています。)
4.クライアントから、データアクセスページのhtmファイルを見に行くと「データソースログオン」が立ち上がります。(パスワードを設定しています。)
5.パスワードを入れるとデータアクセスページ(htm)から、通常のアクセスのフォームのごとくデータ入力が出来る予定なのですが(泣)できません。(泣)

で、悩んでおります。

ACCESS2003のMDBファイルとデータアクセスページ(HTMファイル)をサーバーのwwwrootへ置いただけでは、データアクセスページを通してmdbファイルへの入出力は不可能なのでしょうか?

Aベストアンサー

MDBに接続されたAccessプロジェクトを開いている場合データアクセスページは自動的にそのデータベースに接続されてそのパスがデータアクセスページのConnectionString プロパティに設定されます。
ページを作成した後でデータベースを移動またはコピーした場合はConnectionString プロパティに設定されているパスを更新して新しい保管場所を設定する必要がありますがどうなっていますか?
そこを確認してみてください。

QAccessクエリで昇順で昇順に並びかえる

お世話になります
Accessクエリで昇順にしたのですがID順にそろえたいのですが
■現状
例下記
ID|配達場所|
6|大阪  |
4|大阪  |
7|大阪  |
3|大阪  |
5|京都  |
2|京都  |
1|京都  |
現在上記のような感じになり大阪と京都は区別出来たのですが、
クエリ内ではただ昇順を選んでるだけです(配達場所)

■わからないこと
ID番号も昇順にしたい。
ID|配達場所|
3|大阪  |
4|大阪  |
6|大阪  |
7|大阪  |
1|京都  |
2|京都  |
5|京都  |
なんだか昇順の昇順でややこしいですがわかる方ご教授願います

Aベストアンサー

#1です
クエリのデザインで表示されているのかな

左から順に
ID 表示にチェック
配達場所  表示にチェック 検索条件 並べ替え:昇順
ID 表示にチェックなし 並べ替え:昇順

わかりにくいかな

Qホームページ移転に伴う.htaccessの使い方ですがアップロードして

ホームページ移転に伴う.htaccessの使い方ですがアップロードして削除できなくなる事ないですか??また、さくらサーバーは.htaccess使えますか??

Aベストアンサー

.htaccessだけではなく、
ファイルはパーミッションによっては一旦削除できなくなると思いますよ・・・
使えないのにアップすると削除出来ないとか。

>さくらサーバーは.htaccess使えますか??
使えます。
.htaccessを使えない有料サーバってあるのでしょうか?・・・

QACCESS昇順・降順について

いつもお世話になっております。
<クエリのグループ化について>
いままで昇順・降順についてあまり考えずにグループ化をしていたのですが、グループ化すると勝手に昇順するのに最近気付いたのですが、これはやり方がまずいからでしょうか??
また、グループ化しても並び替えないでやる方法はどのような方法があるのでしょうか。
教えて下さい。宜しくお願いします。

Aベストアンサー

RDBでは一般的に
データの格納順については何の保障もありません。
どのような順番でとってくるかについては指定がない限り、
データベースエンジンの勝手ということになります。

並び替えないでではなく、データを入れた順にという話でしたら、
オートナンバーなどを振っておき、そのグループの最小値順で
降順にするという手がありますが、データが多いと実行するのに
時間がかかるかもしれません。

QAccessで作成したテーブルのOLEオブジェクトの使い方

Accessで作成したテーブルにデータ型(OLEオブジェクト型)で画像を取り込みできるようにしました。
取り込みした画像を開くためのフォームを作成して画像を開けるようにしました。
下記の内容です。

Private Sub Form_Open(Cancel As Integer)
Form.Caption = ProgName
End Sub

しかし「ビットマップ形式」ですと問題なく開くのですが、「JPG形式」ですと開けないのです。取り込みしたAccessテーブルのフィールドから直接だとひらけます。
Accessで作成したフォームから、「JPG形式」の画像を開くにはどうすればよろしいですか?
また、画像を1000件ほど取り込みすると大きいデータベースになってしまいます。Accessのデータベースのサイズは制限があるのかしら?
アドバイスいただけれは幸いです。

Aベストアンサー

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正しく表示されません
http://support.microsoft.com/kb/832508/ja

解決策としては JPEG を開ける OLE コンテナになるアプリケーションをインストールしておく。

Google「Access データベース サイズ 制限」で検索
http://www.google.com/search?hl=ja&num=50&q=Access+%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9+%E3%82%B5%E3%82%A4%E3%82%BA+%E5%88%B6%E9%99%90&lr=lang_ja

Access のバージョンは?
んで Web で検索する努力はしましょうよ。
丸 1日ぐらい検索しっぱなしで悩まないと。

Google「access ole jpeg」で検索
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=access+ole+jpeg&num=50

Access 2003 では以下のような制限があるようです。
■ Access 2003 で OLE オブジェクトとして JPEG および GIF 画像を取り扱う場合の注意事項
http://support.microsoft.com/kb/884484/ja

■ OLE オブジェクト型のフィールドに格納されているイメージが正...続きを読む

QACCESSのテーブルで、昇順並び替え後、連番フィールドを作成したい

表題の通りなのですが、
今現在ACCESS2000を使ってデータベースを作成しています。
その際、
----------------------
連番  項目
00001  りんご
00002  ばなな
00003  みかん
00004  もも
----------------------
というようなテーブルで[項目]を昇順で並び替え後、
連番が自動的に振られるようなクエリ(無理そうならその他の方法でも)を作成したいと思っています。

今現在はクエリで以下のように昇順で並び替えられたものを、
----------------------
連番  項目
00002  ばなな
00003  みかん
00004  もも
00001  りんご
----------------------
一旦エクセルにエクスポートして、オートフィルで[連番]を書き換え後、再度ACCESSにインポートし以下のような完成形にもっていっています。
----------------------
連番  項目
00001  ばなな
00002  みかん
00003  もも
00004  りんご
----------------------

しかし、頻繁に[項目]書き換え・追加のあるデータベースなので、結構な時間を費やしてしまい、とても効率が良いとはいえない状態です。

どうにかACCESS内で完結できる方法はないものでしょうか?

ご享受の程よろしくお願いいたします。

表題の通りなのですが、
今現在ACCESS2000を使ってデータベースを作成しています。
その際、
----------------------
連番  項目
00001  りんご
00002  ばなな
00003  みかん
00004  もも
----------------------
というようなテーブルで[項目]を昇順で並び替え後、
連番が自動的に振られるようなクエリ(無理そうならその他の方法でも)を作成したいと思っています。

今現在はクエリで以下のように昇順で並び替えられたものを、
----------------------
連番  項目
00002  ばなな
...続きを読む

Aベストアンサー

連番は他のテーブルと関連付けられていないのですよね。
今一つ、連番の使い道がわからないのですが・・・

連番は数値型で、書式が 00000 になっているものと仮定します。
テーブル名が「Table_A」と仮定します。
また、項目に重複するものがないものとします。

クエリのSQLビューで以下を記述してみてください。

UPDATE Table_A SET 連番 = DCount("項目","Table_A","項目<='" & 項目 & "'");

そして、必要に応じてこの更新クエリを実行します。


連番がテキスト型なら、DCount 部分を Format を使って桁を揃えてみてください。

QAccess2000でFTPの使い方について。

Access2000のフォームから、実行のボタンをクリックするとFTPサーバに接続→ファイル取得→Accessテーブルに取込→FTPサーバのファイル削除→FTPサーバの接続切断という処理をしたいのですがどのようにしたらよいかわかりません。説明不足だとは思いますが、アドバイスを宜しくお願い致します。

Aベストアンサー

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一覧(詳細)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
v = ftp.GetDir("bussys/winnt/winnt-public") ' ディレクトリ一覧(ファイル名のみ)
If IsArray(v) Then
For Each v2 In v
Debug.Print v2
Next
End If
rc = ftp.GetFile("bussys/winnt/winnt-public/*", "c:\temp") 'ファイル受信

end sub

実行には20秒ほどかかります。
実行前にはCドライブにtempというフォルダを作っておいてください。

ちなみに先ほどのFTPサンプルは、BASP21をインストール後、サンプルのコードを新規モジュールに貼り付けて(たとえば以下をまるごと)実行すればAccessでもそのまま動きます。

sub file_download()

Dim ftp As Object, rc As Long, v As Variant, v2 As Variant
Dim ctr As Long

Set ftp = CreateObject("basp21.FTP")
ftp.OpenLog "c:\temp\log.txt"
rc = ftp.Connect("ftp.microsoft.com", "anonymous", "")
If rc = 0 Then
v = ftp.GetDir("bussys/winnt/winnt-public", 2) ' ディレクトリ一...続きを読む

QAccessで、条件に一致するレコード抽出を、2段階できたら3段階でしたい。

Access初心者のものです。

Accessで商品管理のデータベースを作成しています。
主なテーブルの内容は、
商品番号、商品名、メーカー名、仕入数、仕入単価、販売数、販売単価、などです。

今度は、在庫一覧のフォームを帳票フォームで作りました。そこで、入荷数、販売数などを入力し、現在庫状況をみれる形にしました。

そこでですが、そのフォームである特定の商品を探す際にメーカー名という一つのフィールドに関して抽出する方法はある本を見て抽出することができました。
以下は本をみていれたものです。
   -----------------------------------------

「仕入先抽出_コマンド」 → 抽出開始の為のコマンドボタン
「仕入先抽出条件」 → 抽出したい仕入先名を入力するテキストボックス名
「仕入先」 → 抽出をかける仕入先のフィールド


Private Sub 仕入先抽出_コマンド_Click()
If IsNull(Me!仕入先抽出条件) = True Then
Beep
MsgBox "抽出する仕入先を選んでください。", _
vbOKOnly + vbInformation, "抽出仕入先チェック"
Me!仕入先抽出条件.SetFocus
Exit Sub
End If

Me.Filter = "仕入先 = '" & Me!仕入先抽出条件 & "'"
Me.FilterOn = True
If Me.Recordset.RecordCount = 0 Then
Beep
MsgBox "仕入先抽出条件と一致するレコードは存在しません!", _
vbOKOnly + vbInformation, "レコードなし"
Me!仕入先抽出.SetFocus
End If
End Sub

   -----------------------------------------

ここで抽出したものから更に、メーカー名で抽出をかけて絞り込みしたいと考えております。
できれば2段階、3段階(商品情報は仕入先、メーカー名以外にもあるので…)といきたいのですが、何か方法がありますでしょうか?

宜しくお願致します。

Access初心者のものです。

Accessで商品管理のデータベースを作成しています。
主なテーブルの内容は、
商品番号、商品名、メーカー名、仕入数、仕入単価、販売数、販売単価、などです。

今度は、在庫一覧のフォームを帳票フォームで作りました。そこで、入荷数、販売数などを入力し、現在庫状況をみれる形にしました。

そこでですが、そのフォームである特定の商品を探す際にメーカー名という一つのフィールドに関して抽出する方法はある本を見て抽出することができました。
以下は本をみていれたも...続きを読む

Aベストアンサー

解答付きませんね・・・

参考例で上げときますね

Private Sub 仕入先抽出_コマンド_Click()

Dim usFilter As String

usFilter = ""

If IsNull(Me!仕入先抽出条件) Then
usFilter = "仕入先 = '" & Me!仕入先抽出条件 & "'"
End If
' フォームに「Me!メーカー名抽出条件」がある前提
If IsNull(Me!メーカー名抽出条件) Then
usFilter = IIf(usFilter = "","",usFilter & " And ") & _
"メーカー名 = '" & Me!メーカー名抽出条件 & "'"
End If
' この後、If IsNull(Me!メーカー名抽出条件) ThenからEndIfまでを繰り返すだけ

If usFilter = "" then
Me.FilterOn = False
Else
Me.Filter = "仕入先 = '" & Me!仕入先抽出条件 & "'"
Me.FilterOn = True
If Me.Recordset.RecordCount = 0 Then
Beep
MsgBox "仕入先抽出条件と一致するレコードは存在しません!", _
vbOKOnly + vbInformation, "レコードなし"
Me!仕入先抽出.SetFocus
End If
End If

End Sub

解答付きませんね・・・

参考例で上げときますね

Private Sub 仕入先抽出_コマンド_Click()

Dim usFilter As String

usFilter = ""

If IsNull(Me!仕入先抽出条件) Then
usFilter = "仕入先 = '" & Me!仕入先抽出条件 & "'"
End If
' フォームに「Me!メーカー名抽出条件」がある前提
If IsNull(Me!メーカー名抽出条件) Then
usFilter = IIf(usFilter = "","",usFilter & " And ") & _
"メーカー名 = '" & Me!メーカー名抽出条件 & "'"
End If
' この後、If IsNull(Me!メーカー...続きを読む

QRuby on Rails 「attr_accessor」 の使い方に

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状態になってしまうことです。
「:if => 項目?」を書いてみると、「undefined method」のエラーがでてしまいます。

どなたか対応策の分かる方がおられましたらご教授いただけないでしょうか?

下記に実際の問題箇所のモデルクラスのソースを書いておきます。

 class User < ActiveRecord::Base

   attr_accessor :NEW_USER_PW ← 追加したアクセサ

   # 追加したアクセサに対するチェック
   validates_length_of :NEW_USER_PW, :minimum=>4, :message=>"は%d桁以上を設定してくださ            
    い。", :on => :update, :if => :NEW_USER_PW?

 end

上記のチェック内の「:if => :NEW_USER_PW?」で落ちてしまいます。
入力がないのにチェックに引っかかるとまずいので、入力がないときだけ上記チェックを行えれば良いのですが・・・。

どうぞ宜しくお願い致します。

Ruby on Rails 「attr_accessor」 の使い方について

こんにちは。

現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。

attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。

問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状...続きを読む

Aベストアンサー

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.size > 0
end

また、ifにはprocオブジェクトを渡すこともできますので、
:if => Proc.new{|u| u.NEW_USER_PW.size > 0}
と書いてもいいでしょう。


NEW_USER_PWというインスタンス変数はすべて大文字を使用されていますが、
見る人によっては定数と勘違いします。
変数であれば小文字表記を利用するほうが良いかもしれません。

attr_accessor :NEW_USER_PWを定義したからといって、
NEW_USER_PW?メソッドが定義されるわけではりません。
attr_accessorはゲッターとセッターメソッドを作るだけです。
それ以外の論理値を返すようなメソッドは自作しなければなりません。

NEW_USER_PW?メソッドを作成されていないのなら、「undefined method」が
出てしまうのは当然です。

質問にあるように、「入力があった場合のみ」とありますので、
NEW_USER_PW?メソッドを下記のように実装すればチェック可能です。

def NEW_USER_PW?
@NEW_USER_PW.s...続きを読む

QVLOOKUP関数を使用時、検索する値は昇順に並べ替える必要がありますか。

VLOOKUP関数使用時、検索する値を昇順に並べ替えておかないと、正しい値を返す事が出来ないのでしょうか?

下記条件のそれぞれについて御指導お願い致します。

1.参照元も参照先も同じワークシートに存在する場合。
2.参照元と参照先が同じブックに存在する場合。
3.参照元と参照先が異なるブックに存在する場合。

特に3について並べ替えなくても処理できる方法があれば
併せて御指導お願い致します。

Aベストアンサー

答えは、NOでもあり、YESでもあります。
というのは第4引数がTRUEとFALSEに指定する型があり
  FALSE型  並べる必要なし
  TRUE型   並べる必要あり
だからです。今までのOKWAVEの回答者の中にもTRUE型において、間違った(質問のような)解答がありました。
TRUE型は区画範囲で割り出すのだから、順位並んでいないと、
FROMーTOがいってしまいますが、1つで済ましている以上、順でないと困るわけです。
FALSEは個別のものを探すので、順序は問題にしません。
1.2.3で質問の点に差があると考える必要はありません。
前半と後半は聞いていることが違います。後半はシートやブックを
エクセルでどう表現しているかの問題です。!や[]などで表すやり方を調べてください。


人気Q&Aランキング

おすすめ情報