Access総合相談所 其の19 【桐にしとけ】

このエントリーをはてなブックマークに追加
952名無しさん@そうだ選挙にいこう:2008/12/27(土) 10:03:10
エクセルとリンクのときのとき文字列にしたいのに数字になったり
日付が数字になったり、明示的に指示する方法はないので仕様か
 もちろんSQL命令で無く、ウィーザードからです
953名無しさん@そうだ選挙にいこう:2008/12/27(土) 10:15:45
エクセルと連携したかったら桐にしときな
954名無しさん@そうだ選挙にいこう:2008/12/27(土) 10:30:31
職場のランパソだから無理です
955名無しさん@そうだ選挙にいこう:2008/12/27(土) 13:29:08
能力が桐レベルなんだから桐が使えない職場なんか辞めちまえ
956名無しさん@そうだ選挙にいこう:2008/12/27(土) 13:39:29
まあ最初からアクセスですべて組めばいいわけですが
エクセルしか使えないのが多くてどうしようもないです

ちなみにアクセスは県内の事務所だけで1000台以上ありますので
入れ替えは不可能です。
また桐を入れようにも権限がないのでインストールすらできません。

最悪コードを書いて変換してしまえばいいわけですが。
たとえば゛備考欄を数字でインポートしてエラーだらけなんて話にな
りませんよね。
957名無しさん@そうだ選挙にいこう:2008/12/27(土) 14:01:37
ウィーザードとか言ってる時点で1000台の会社から1台の会社に転職すべき
958名無しさん@そうだ選挙にいこう:2008/12/27(土) 14:03:26
皆さんはコード化がめんどくさくないのでつか
959名無しさん@そうだ選挙にいこう:2008/12/27(土) 14:04:10
つか型変換選択ぐらいサポートしとけといいたい
960名無しさん@そうだ選挙にいこう:2008/12/27(土) 15:03:50
表計算なんて全セルVariant型みたいなもんだろ
変換もへったくれもあったもんじゃねーよ
961名無しさん@そうだ選挙にいこう:2008/12/27(土) 16:10:04
>>952
Excelとリンクする場合は>>960さんもおっしゃっていますが、Excel側にデータ型の概念が
ありませんからAccess側でも明示的に指定する方法はありません。
インポートであれば指定できるんですけどね。
962名無しさん@そうだ選挙にいこう:2008/12/27(土) 16:24:42
やっぱりできないってことだけでおkです
ありがとうございました。
963名無しさん@そうだ選挙にいこう:2008/12/28(日) 15:13:01
リストボックス、新規行で先頭フィールドだと↓押した瞬間に閉じちゃうんだけど、そんなもの?
Access ダメじゃん、根本的欠陥を抱えてる
964名無しさん@そうだ選挙にいこう:2008/12/28(日) 15:27:49
アクセスはキッチリとは動かないから恐る恐る設計してください。
キッチリ動かしたかったら桐にしときな。
965名無しさん@そうだ選挙にいこう:2008/12/28(日) 16:32:50
>>963 が日本語に根本的欠陥を抱えていることまではわかった
966名無しさん@そうだ選挙にいこう:2008/12/28(日) 16:38:54
在日じゃないの
967963:2008/12/28(日) 17:16:41
済みません
リストボックスとかコンボボックスとかで、値を選択したいのですが
キーボードで行いたいのです

Alt+↓ でリストボックスを開いて、↓ で値を選択しようとすると、↓ 押した直後にリストボックスが閉じてしまいます
再び Alt+↓ を押さなければなりません
新規行で、ID(オートナンバー)除く最初のフィールドです

何か設定が間違ってますか?
それとも、正しい動作ですか?
968963:2008/12/28(日) 17:20:32
書き忘れました
表形式フォームです
969名無しさん@そうだ選挙にいこう:2008/12/28(日) 18:10:42
>>968
2003 では普通に選択できるのだが。

コンボボックスだよね?
970963:2008/12/28(日) 19:40:37
>>969
ごめんなさい
2007です、リストボックスでもコンボボックスでも発生します

↓ を押した瞬間に、Form_BeforeInsertイベントが発生し、編集中の鉛筆マークでて、ID が(新規)からオートナンバーの数字に変わって
一番最初の選択候補が選択された状態で、コンボボックスが閉じてしまいます

二番目以降の選択肢をキーボードで選びたいときには、再び Alt+↓ 押してドロップダウンリストを開き直さないと選べませんorz
971名無しさん@そうだ選挙にいこう:2008/12/29(月) 02:49:10
もってないから2007で何がどう変わったのか知らないけど、
リストボックスが開いたり閉じたりするわけ?
もうそのイメージがわかないというか、想像つかない。
2007どういうアプリになっちまってるのやら。
972名無しさん@そうだ選挙にいこう:2008/12/29(月) 08:30:18
>>970
その部分だけサンプルで切り出した物があると助かるんだけれどね。

俺も2007使いだから。
973963:2008/12/29(月) 09:17:06
サンプル作って再現しますた

★T_サンプル
[ID]:オートナンバー
[年月日]:日付/時刻
[名前]:テキスト

T_サンプル を開いた状態で、作成複数のアイテム(フォーム)リボンをクリックして表形式フォーム作成
デザインビューにして、Txtbox_名前を右クリック、コントロール種変更でコンボボックスに変更
値集合タイプ:リスト,値集合ソース:エリカ,リエ を設定

[名前]を数行入力して[年月日]は未入力で良い)、レコードセレクタで全行選択→コピー→新規行に貼りつけ
を何度かして40行くらいに増やす
フォームを閉じる

1.フォームを開く
2.Ctrl+↓ で最終行に移動
3.新規行[名前]に移動して、Alt+↓ でリスト開く、↓ で"リエ"を選ぼうとすると、"エリカ"が選ばれて閉じてしまう

以上の、2.の後、3.の前、の画面状態によって描画更新され、先頭候補が勝手に選ばれてドロップダウンが閉じてしまう感じ
974名無しさん@そうだ選挙にいこう:2008/12/29(月) 18:42:18
>>970
当店の雰囲気に合った服装というのは勿論ですが、
何よりもその服装がお客様ご自身に合っているかどうか、
という点を最も重視してチェックさせて頂いております。
特別に決まりや基準があるわけではなくファッションの基本と同じですので、
難しくお考えにならずにご来店頂ければと思います。
975名無しさん@そうだ選挙にいこう:2008/12/29(月) 19:04:46
>>974
桐にしとけ
976名無しさん@そうだ選挙にいこう:2008/12/30(火) 11:55:14
WindowsXP SP3
Access2003

Accessを使って作ったアプリの操作途中で必ずではないのですが「メモリ不足です」
という旨のエラーが出て終了してしまいました。
良く調べてみると、フォームを開いたり閉じたりしている操作の際に、
メモリが圧迫されていっていることが分かりました。
これは、対処しようがないのでしょうか。それとも、VBAのコードの書き方の問題
なのでしょうか。よろしくお願いします。

極端な事例ですが以下のような手順で、メモリが圧迫されていくのが確認出来ると思います。
(メモリは、タスクマネージャのプロセスの「MSACCESS.EXE」の「メモリ使用量」で
確認しています。)

まず、ラベルやコマンドボタンなどを一切配置していない空のフォーム(フォーム1)を作る。
次に、コマンドボタンだけを配置したフォーム(main)を作り、以下のコードを追加する。

Private Sub コマンド0_Click()
For i = 1 To 1000 Step 1
DoCmd.OpenForm "フォーム1", acNormal
DoCmd.Close acForm, "フォーム1", acSaveNo
Next i
End Sub

フォーム(main)を開き、コマンドボタンをクリックする。
977名無しさん@そうだ選挙にいこう:2008/12/30(火) 19:55:03
978名無しさん@そうだ選挙にいこう:2008/12/30(火) 23:25:54
>>977
すでにFAQみたいなことだったのですね。
詳しい情報が書かれたサイトの紹介、ありがとうございます。
979名無しさん@そうだ選挙にいこう:2008/12/31(水) 10:36:33
WindowsXP SP3
Access2000

テーブルAとBを結合させ、テーブルAの全レコードと、Bの一致するレコードを抽出したいのですが
うまくいきません。
Bに条件を入れると完全に一致するレコードしか出て来ないのですが、何がいけないのか分かりません。

SQLビューで見ると下記のようになっています。

SELECT A.HIN_CD,B.SURYO
FROM A LEFT JOIN B ON A.HIN_CD = B.HIN_CD
WHERE A.BUNRUI = 200
AND B.YMD = #12/31/2008#

LEFT JOINしてもBに条件が入っているとダメなのでしょうか?
この条件でAのレコード全部を出す方法を教えて下さい。
980名無しさん@そうだ選挙にいこう:2008/12/31(水) 11:24:09
AndをOrに変える
981名無しさん@そうだ選挙にいこう:2008/12/31(水) 12:56:23
そもそもテーブルAの全レコードを取得したいって時点で
WHERE条件を指定したらダメだろ・・・
982979:2008/12/31(水) 13:14:21
ありがとうございます。
では

SELECT B.HIN_CD,B.SURYO
FROM B
WHERE B.YMD = #12/31/2008#

をクエリ1として保存し、

SELECT A.HIN_CD,クエリ1.SURYO
FROM A LEFT JOIN クエリ1 ON A.HIN_CD = クエリ1.HIN_CD
WHERE A.BUNRUI = 200

とすれば良いのでしょうか?
983名無しさん@そうだ選挙にいこう:2008/12/31(水) 13:29:01
984名無しさん@そうだ選挙にいこう:2008/12/31(水) 14:36:54
>>979
>テーブルAとBを結合させ、テーブルAの全レコードと、Bの一致するレコードを抽出したいのですが

>>982
>WHERE A.BUNRUI = 200

Aの全レコードがほしいのかほしくないのか、どっちなんだよ!
985982:2008/12/31(水) 14:54:40
説明不足ですみません。
BUNRUI(主キーではない)=200のレコードを全て欲しいんです。

HIN_CD BUNRUI 
100     100     
101     200
102     200
103     200

B
HIN_CD SURYO YMD
101     1    2008/12/31
102     2    2008/12/20
103     3    2008/12/31

とあったら
101でSURYO 1
102でSURYO 0
103でSURYO 3
と取得したいんです。
986名無しさん@そうだ選挙にいこう:2008/12/31(水) 15:10:01
桐にしとけよ
987名無しさん@そうだ選挙にいこう:2008/12/31(水) 15:19:21
> 102でSURYO 0
Nz(クエリ1.SURYO, 0)
988名無しさん@そうだ選挙にいこう:2008/12/31(水) 15:51:36
>>979=982=985
サブクエリを作って外部結合でいいと思うよ。

SELECT
Q1.HIN_CD, Q2.SURYO
FROM
(SELECT * FROM A WHERE A.BUNRUI = 200) AS Q1
LEFT JOIN
(SELECT * FROM B WHERE B.YMD = #12/31/2008#) AS Q2
ON Q1.HIN_CD = Q2.HIN_CD;

※数量がNullで困るなら>>987にあるようにNz関数を使うこと。
989名無しさん@そうだ選挙にいこう:2008/12/31(水) 15:56:19
要は・・・結合してから絞り込むのか、絞り込んでから結合するかの違いです。
990名無しさん@そうだ選挙にいこう:2009/01/01(木) 01:36:51
991名無しさん@そうだ選挙にいこう:2009/01/01(木) 22:27:16
access2002を使っています。
2つのテーブル(またはクエリの結果)が全く同じものであることを確かめる
にはどうしたら一番効率的でしょうか?

※2つのテーブル(またはクエリの結果)のレコードの順序は同じとは限らなく、
 また、フィールドは空白をとる可能性があるものとします。
992991:2009/01/01(木) 22:35:09
すいません、忘れました。
できればVBAを使わない方法がいいです。
993!omikuji!dama:2009/01/02(金) 00:39:33
>>991-992
それぞれをテキストファイルにエクスポートしてから
ファイル比較ツールを使うという方法はどうだろう?
994名無しさん@そうだ選挙にいこう:2009/01/02(金) 00:59:29
Access2007をクライアントとしたクラサバシステムを開発することとなりました。

チーム開発(といっても3人)なので、VSSによるソース管理をしたいのですが、可能でしょうか?
2003まではVSSアドイン( http://www.microsoft.com/downloads/details.aspx?FamilyID=2ea45ff4-a916-48c5-8f84-44b91fa774bc&DisplayLang=en )を利用してましたが、2007用が見当たりません。

ご存知の方ご教示ください。


995名無しさん@そうだ選挙にいこう:2009/01/02(金) 01:35:49
996994:2009/01/02(金) 08:02:41
>995
ありがとうございました。
検討します。
997名無しさん@そうだ選挙にいこう:2009/01/02(金) 10:22:15
>>991
インポートなりユニオンなりして
固有のレコードなり重複クエリなりして
レコード数チェック
998991:2009/01/02(金) 11:30:06
997さん
ありがとうございます。試してみますが、空白やNULL値があっても比較できるでしょうか?
999名無しさん@そうだ選挙にいこう:2009/01/02(金) 12:19:28
テキストファイルにはNullの概念がないから
長さ0の文字列とNullを別物として比較するのは難しいな
1000名無しさん@そうだ選挙にいこう:2009/01/02(金) 12:57:54
1000なら俺はこの世界の「神」になる
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。