ACCESS総合相談所 その3

このエントリーをはてなブックマークに追加
>>951
クエリのプロパティのレコードセットをスナップショットにすると・・・
953  :02/07/22 23:57
>>952
ママ(*´∀` *) ・・ありがとう・・・
954926:02/07/23 00:34
>>950
ムムムもちろん教えて頂いた方法では
日付表示は出ないのは分かるんだけど、、。
>>954
日付表示といわれても、週単位なら、第○週と言えるけど、
5日単位はなんと言えば良いんだ?

集計期間: Format(Int([日付]/5)*5+1,"ge/m/d") & "〜" & Format((Int([日付]/5)+1)*5,"ge/m/d")
で、無理矢理日付表示する?
956名無しさん@そうだ選挙にいこう:02/07/23 12:10
質問です。
accessの TABコントロールのように、明細が表示されている時、
その明細を複数行選択して、違う行に移動させたいのですが、
できるのでしょうか?
957しろ:02/07/23 12:18
>946 更新クエリは?

>947 日付時刻型はそうなってしまうので、数値型扱いにして
 計算するしかない。

>956 移動って順序を変えると言う意味?
 Sort用の番号を入れるフィールドを作って、そこの番号を書き換えて
 ソートしなおすと言うのは?
958名無しさん@そうだ選挙にいこう:02/07/23 15:58
アクセス97でコンボボックスに表示された値をサブフォームから検索するにはどうすればよいですか?
959 :02/07/23 16:46
フォームを右上の×で閉じられないように右上の3つを消したいのですが
こんな事できますかね?
変な説明ですいません・・・
960958:02/07/23 17:07
検索ではなくてフィルタをかけるやりかたでもいいです
よろしくねがいます

>959
デザインビューで「フォーム」のプロパティでそれぞれ「なし」にする
961名無しさん@そうだ選挙にいこう:02/07/23 17:10
こんにちは。
XP Pro (IIS 5.0) +Access 2002
を使用して MSDE + ASP のプログラムを作成しています。

会社で途中まで作ったものを家でも動かしたいのですが
どうもうまく行きません。
本にもなかなか移行のことは書いていません。

基本的には会社での作成ですので、家のPCでは
動作確認等ができればよいと思っています。
PC名等は、会社と家では異なりますが、OS等は同じです。

やり方をご存知の方いらっしゃったら教えてください。
(参考になるWebでも構いません)


1)ADP ファイルと、データ上で使っている画像ファイル等を家のPCにコピー
   →これで一応Accessではオープンできます。
  ただ、当然ASPではDBに参照できません。

2)SQLのEnterprize Managerで登録してみようとする。
   →同じ名前(xxx.adp)でやってみたのですが、ファイルを置いたフォルダを
  聞かれません。この辺が既に怪しそうです。。。

何か根本的に間違っているのでしょうか?
よろしくお願いします。

962uud:02/07/23 17:38
>>945
ありがとうございました!!
謎が解決しました。
963958:02/07/23 18:09
ボタンに

Me![設定保存のサブフォーム].Form.Filter = "帳票名= " & Me![帳票選択] & ""

これでおしいとこまでいけるんですが
「帳票選択」がコンボボックスになってます
実行すると「パラメータの入力」ボックスが表示され、そこにテキストを入れると
サブフォームにフィルタがかかります

964958:02/07/23 18:39
自己解決しました
965名無しさん@そうだ選挙にいこう:02/07/23 19:08
>>961
「テーブル」「ビュー」「ダイアグラム」「ストアドプロシージャ」
はadpファイルには保存されない。
まずは会社でadpファイルを開いて[ツール]-[データベースユーティリ
ティ]にある「バックアップ」を使い、xxx.datという名前で保存する。
この中に作ったテーブルなどが保存される。
家ではadpファイルを開いて[ツール]-[データベースユーティリティ]
にある「元に戻す」を使って、xxx.datからMSDEのデータベースに復元
する。これで完了。
なお、バックアップがうまくできない場合は、[ファイル]-[接続]で
サーバ名を(local)に変えれば大丈夫(localの左右の括弧も必要)。
966名無しさん@そうだ選挙にいこう:02/07/23 19:14
>>961
会社と家とでMSDEサーバ名が異なる場合は、家のPCで、MSDEの
「クライアントネットワークユーティリティ」を使って、会社と同じ
名前を「サーバ別名」として登録してしまう手がある。これ結構便利。
例えば会社のサーバ名がserver、家ではmypcの場合、
サーバ別名:server
サーバ名:mypc
ポート番号:1433(もしかしたら自動設定ができるかもしれん)
これで、serverという名前が家のPCでも使えるのでいちいち接続設定
をやり直す必要がなくなる。
967名無しさん@そうだ選挙にいこう:02/07/23 19:19
>>965 >>966

ありがとうございます。
まだ会社なので、これからバックアップ取って早速家でチャレンジしてみます。
うまくいったら報告します。

968 :02/07/23 19:20
>>960
ありがとう、そうだったのか・・・・
969名無しさん@そうだ選挙にいこう:02/07/23 19:24
>>965
 一つ(念のため)確認させてください。
 結局、adpファイルとバックアップするdatファイルの両方が
必要ということですよね。
 後半で書いてある『家ではadpファイルを開いて。。。』というのは
会社で作ったADPファイルをメディアに落して持って行き
それを開いた上でということですよね(空のadpファイルを作ってという
ことではないですよね)
 うまくいけばよいのですが。
970名無しさん@そうだ選挙にいこう:02/07/23 20:04
>>969
もちろん両方必要です。
DAT : 「テーブル」「ビュー」「ダイアグラム」「ストアドプロシージャ」
ADP : 「フォーム」「レポート」「ページ」「マクロ」「モジュール」
971名無しさん@そうだ選挙にいこう:02/07/23 20:07
>>970
 ありがとうございます。
 ひっくるめて持って帰ってやってみます。
972名無しさん@そうだ選挙にいこう:02/07/23 22:51
良スレあげ
973名無しさん@そうだ選挙にいこう:02/07/23 23:22
>>970
 家に帰ってきました。コピーしてきたADPファイルを読み込もうとすると
「xxx(会社PC名)上のデータベースyyyに接続できません。データベースが存在し、
 サーバが実行中であることを確認してください。」
と表示されてしまいます。
 新規に作成すると無事動くので、サーバが実行中で無いということは無いです。

>>966さんのアドバイスに従って、サーバ別名に会社のPC名 (ポート番号は自動)
を設定し、再起動もしたのですがやっぱりだめです。。。

バックアップまで行かないのですが、、、何か手がありますでしょうか?
よろしくお願いします。
974名無しさん@そうだ選挙にいこう:02/07/24 00:50
データ型がテキスト型のまま、数字が入力された時だけ「¥」や「,」の入る
通貨表示をさせたいのですが、どうしたら良いのでしょうか?
.
>>974
何のためにそんなことする必要があるんだ?
DBの基本を理解しろ。
976名無しさん@そうだ選挙にいこう:02/07/24 01:06
>>973
家のMSDEにデータベースファイルがないのなら、Accessプロジェクト
を新規作成して、
プロジェクト名・・・適当でよい
データベース名・・・会社のものと統一
とすれば、とりあえず会社のものと同じ名前のデータベースが作成
される。
次に会社から持ち帰ってきたADPファイルを開いて、「元に戻す」を
実行。
これで大丈夫なはず。
977名無しさん@そうだ選挙にいこう:02/07/24 01:12
>975
質問を変えて、金額と「未納」を同じテキストボックスに表示させるにはどうすれば良いのでしょうか?
.
>>977
何のためにそんなことする必要があるんだ?
DBの基本を理解しろ。
979ん?:02/07/24 01:55
>>978
荒らし君ハケーン!
980名無しさん@そうだ選挙にいこう:02/07/24 02:10
>978
金額と文字を一緒に入力や表示をさせたい事って今まで無かったのでしょうか?
.
981ん?:02/07/24 02:19
>>980
978は実務を知らないヒッキー君だから聞いても無駄!
>>980
同じテキストボックスにする必要を感じたことはありませんが?
テーブルになぜ文字を一緒に格納する必要があるの?
金額フィールドと未納フィールドでも作れ。
>>977
「未納」=金額が0円(もしくはNull)なんだから、IIFを使え!
そうすれば通貨型で済む
984名無しさん@そうだ選挙にいこう:02/07/24 03:01
>983
「未納」以外に「領収済み」とか他の文字も入るので・・・・・
.
>>984
「請求金額」=「収納金額」の時「領収済み」と表示させ、
「請求金額」< 「収納金額」の時「超過」みたいな感じでは無理なの?

無理なら、IsNumeric辺りで判定して、Format関数を使うという手もあるけど、
数値が文字列と認識されるなど、演算上の問題が発生するのでお薦めはしないよ。
986名無しさん@そうだ選挙にいこう:02/07/24 03:38
>985
ありがとうございます。
他の文字も入るので、上の方法は使えないですが
そのフィールドは表示と印刷だけなので、下の方法は良いので
どのように準備すれば良いのでしょうか?
VBAとか関数とか引っ込んでしまうぐらいの初心者なのでお願いします ゚・(´Д⊂・゚・
.
987名無しさん@そうだ選挙にいこう:02/07/24 09:14
>>976
おはようございます。アドバイスありがとうございます。
既に会社に来てしまったので、家で適当に作ったものを持ってきて試しています。

少し分からないので教えてください。

>家のMSDEにデータベースファイルがないのなら、Accessプロジェクト
>を新規作成して、
>プロジェクト名・・・適当でよい
>データベース名・・・会社のものと統一
>とすれば、とりあえず会社のものと同じ名前のデータベースが作成
>される。

これはできました。新しいADPを作ればよいということですね(白紙の) ・・(A)

>次に会社から持ち帰ってきたADPファイルを開いて、「元に戻す」を
>実行。 ・・・(B)

これが分からないのですが、このADPがうまく開けません
>>973と表示されてしまいます。
 無理やり未接続なら開けますが
ただ、 B開くとAが閉じてしまいます。。。どうやって元に戻すというのを
やればいいのでしょうか?
元に戻すというのは ツール→データベースユーティリティ→SQLデータベースの復元
でよいのでしょうか?

質問ばかりですいません。よろしくお願いします。
988名無しさん@そうだ選挙にいこう:02/07/24 10:50
>>987
>ツール→データベースユーティリティ→SQLデータベースの復元
その通りです。(私は2000を使ってるので少し違うみたいだ)
もしダメなら、ADPファイルを開いてみて、エラーが出てもとりあ
えず無視。そして[ファイル]-[接続]を開いて、サーバ名を(local)
に変更。その後、SQLデータベースの復元を実行してみると接続
できるかもしれませんが・・・
989名無しさん@そうだ選挙にいこう:02/07/24 10:52
それから、(A)は、家のMSDEに新規データベースを作るために一時的に
必要なだけで、作り終わったらゴミ箱にポイして構いません。
で、(A)を閉じて、今度は(B)を開いて・・・ということです。
説明不足でスマソ
990名無しさん@そうだ選挙にいこう:02/07/24 11:00
質問です。
accessの TABコントロールのように、明細が表示されている時、
その明細を複数行選択して、違う行に移動させたいのですが、
できるのでしょうか?
マウスで、ドラッグして、行の順序を変えたいのですが、できませんか?
>990
>accessの TABコントロールのように、明細が表示されている時、
タブコントロールでそんなできんような。タブオーダーの話かね?
タブオーダーの並べ替えのように並べ替えたいと。
ん〜普通にはむりぽ。まず、データベースは表計算と違って、
「並び順を保持しない」わけだ。で、並び順をクエリの並べ替えで指定しないと
表示しなおすたびに並び順が変わると思ってた方がいい。
だから、Accessの仕様には選択してドラッグすると並び順を入れ替える、なんて
機能は実装されてない。実装する意味がないからね。
で、ど〜してもそんな機能が欲しいなら、VBAをゴリゴリ書いてなんとかしろって
こった。たとえば、

テーブルに「並び順」フィールドを作って、現在の並び順で間を100ぐらい空けて
データを作成。フォームのレコードソースを「並び順」を並び順にしたクエリを指定。
フォームに置いた「並び順用選択」ボタンのクリック時のイベントで
レコードの主キーを配列の変数に入れる。で、配列の何個目まで使っているか
を保持する変数に1って入れる。ここにもう数字が入っていたらその数字+1を入れて
そのインデックスの配列に主キーを入れる。
でフォームに置いた「並び順用この下に入れる」ボタンを押した時、配列に入って
いる主キーのレコードの「並び順」を「並び順用この下に入れる」ボタンを押した
レコードの「並び順」より大きくて、次に大きい「並び順」より小さい数にする。
その後、DAOかなんかで、「並び順用この下に入れる」ボタンを押したフィールド以降の
レコードの並び順を100ぐらいに広げる。

って書いても自分でも良くわかんないや。まあがんばれ。
ADPと一緒にxxx.MDFも持ち帰ってアタッチする。db_attachだっけ?
993テーブルの値の規定値について:02/07/24 13:05
すいませんが、おしえてください。

下記のようなテーブルで、主キーであるID番号の列の値の規定を
日付と事業所が合体した文字列にしたいのですが、そういう方法
ってありますでしょうか?

ID番号(主キー)  日付       事業所名
20020720 2002/7/20    本店
20020723 2002/7/23    東京支店 

ID番号のプロパティの規定値のところに
format([日付],"yyyymmdd")&""&[事業所]  
のような感じで入れようと試みたのですが、式ビルド画面では
[日付]も[事業所]も選択できず、困ってました。
お手数かけてすいませんが教えてください。     
994名無しさん@そうだ選挙にいこう:02/07/24 15:08
順位付けVBAに関してお願いします。回数ごと、学年ごとに順位付けをして
テーブルに格納する下記のVBAを作成したのですが更新できません、といわれて止まってしまいます。
バージョンは2000です。なにか良い方法がありましたら、ご教授お願いいたします。

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fldNo As Field
Dim flddata As Field
Dim count As Integer
Dim sql As String
Dim jhozon As Integer
Dim juni As Integer

sql = ""
sql = sql & " SELECT"
sql = sql & " T2002年度生徒名簿マスタ.学年," & vbCrLf
sql = sql & " Tテスト順位.英語," & vbCrLf
sql = sql & " Tテスト順位.英語順位" & vbCrLf
sql = sql & " FROM Tテスト順位 INNER JOIN T2002年度生徒名簿マスタ ON
          Tテスト順位.生徒氏名 = T2002年度生徒名簿マスタ.生徒氏名" & vbCrLf
sql = sql & " where Tテスト順位.第X回 = " & Forms![F選択フォーム]![cmb回数]
 "And T2002年度生徒名簿マスタ.学年 =" & Forms![F選択フォーム]![cmb学年] & vbCrLf
sql = sql & " ORDER BY Tテスト順位.英語 DESC;"

Set db = CurrentDb
Set rs = db.OpenRecordset(sql)
Set fldNo = rs.Fields("英語順位")
Set flddata = rs.Fields("英語")
If rs.BOF = False Then
rs.MoveLast
rs.MoveFirst
Do Until rs.EOF
rs.Edit ←ここで止まってしまう。

count = count + 1

If flddata <> jhozon Then
juni = count
jhozon = flddata
End If
fldNo = juni
rs.Update
rs.MoveNext
Loop
rs.Close

End If
db.Close
count = 0
Set rs = Nothing
Set db = Nothing
>993
入力をフォームで行うようにして、そのとき作成。
996名無しさん@そうだ選挙にいこう:02/07/24 15:21
>>988 >>989
コメントありがとうございます。
会社にはOfficeXPが1台しかなく、もう1台の2000とのやりとり(2000形式)で
やってみました。
うまく行っているようです。ありがとうございまいた。

ただ1つだけ確認させください。

1)MSDEに新規データベース作成
  →これはうまく行きました。
2)その後ダミーのADPは捨て、本物のADPを未接続で立上げ
  →これもOK
3)その後、1)で作成したデータベースに接続
★このとき、接続はできるのですが、一旦作成されていたテーブルが消えてしまいます。
  これは問題ないのでしょうか?

その後、datファイルからリストアすると復元はされます。
ただ、簡単なテーブルしかまだ作っていないので、3)で消える(一覧からは無くなる)というのが
問題ないのか心配です。

どなたかのコメントで、テーブルはadpに入っているということをアドバイスいただきましたが
新規データベース(名前は一緒)に接続時に何かデータが欠落するということはないでしょうか?

とりあえずASPで、データの内容を参照するのはOKでした。
よろしくお願いします。
>994
Helpより
>次のような場合に Edit メソッドを使用するとエラーが発生します。
>カレント レコードが未定義の場合。
>Connection、Database、または Recordset オブジェクトが読み取り専用で開かれている場合。
>レコードに更新可能なフィールドがない場合。
>Database または Recordset を別のユーザーが排他モードで開いている場合。(Jet ワークスペースの場合)
>カレント レコードが含まれているページを別のユーザーがロックしている場合。(Jet ワークスペースの場合)

んでさ>Connection、Database、または Recordset オブジェクトが読み取り専用で開かれている場合。
このへん怪しくないかな?変数sqlをクエリで開いて編集できる?
新スレ立ちましたので、移動お願いします

ACCESS総合相談所 その4
http://pc.2ch.net/test/read.cgi/bsoft/1027491281/
999名無しさん@そうだ選挙にいこう:02/07/24 17:32
a
1000名無しさん@そうだ選挙にいこう:02/07/24 17:33
1000げっゅう
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。