ACCESSに関する質問はこちらへ!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★ OS、ACCESSのバージョンを明記してください。
★ 質問内容は具体的に書いてください。
・何がしたいのか
・どんな処理を試したか
・動作状況など駄目な理由
テーブル/フォームの構成、クエリ、VBAの内容など差し支えない
範囲で詳しく書くと、早く回答が得られるかもしれません。
図解があれば尚良し。
聞き返さなくても詳細が把握できる質問が望ましいです。
★ 事前にヘルプ・Google等で調べられる範囲は調べてください。
大概の疑問は検索することで解決します。
★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。
ギブアンドテイクで情報を共有しましょう。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【 システム環境 . 】 Windows**, Access**
【 VBAが使えるか .】 はい・いいえ
【 VBAでの回答 】 可・否
【 検索キーワード 】 Googleやヘルプでの検索キーワード
前スレ
ACCESS総合相談所 その17 【桐にしとけ】
http://pc11.2ch.net/test/read.cgi/bsoft/1175943813/
4 :
名無しさん@そうだ選挙にいこう :2007/12/29(土) 13:06:55
5 :
名無しさん@そうだ選挙にいこう :2007/12/29(土) 14:11:45
すみませんが教えてください。 複数のフィールドの値を条件にテーブル結合は出来ますか? テーブル1 フィールド1 フィールド2 11111 あああああ 33333 いいいいい 11111 いいいいい 33333 あああああ 11111 あああああ 11111 いいいいい テーブル2 フィールド1 フィールド2 フィールド3 22222 あああああ 12788 33333 いいいいい 7878 11111 あああああ 8888 33333 あああああ 8880 11111 いいいいい 7888 テーブル1が11111とあああああならテーブル2のフィールド3を持ってくるのです。 テーブル1テーブル2ともに主キーは別のフィールドです。 フィールド1とフィールド2が合わさって一つしかない 名前になるのです。 フィールド1とフィールド2を結合するのかな?と思うのですが・・・。
まあ、これも桐を使えば一撃で出来るんだが、 Accessの回答をどうぞ ↓
まあ、ここでの質問の大部分は桐でスパット解決できる訳で、、アプリ開発時間も1/5くらいな訳で、、 エクゼプティブは桐でさっさと仕事済ませて、空いた時間はホテルのプールでリフレッシュ 貧乏人はAccessで必死に頑張ると
もしかして: エグゼクティブ
>> 前スレ963 'インポート先のテーブルT1は作成済みの前提 'アーリーバインディングにしたい場合は好きに修正汁 'Scripting.Runtime の定数を使用したい場合も好きに修正汁 Sub ImportShit() Dim rs As Object 'DAO.Recordset Dim reader As Object 'Scripting.TextStream Dim tmp As Variant ' レコードセットをオープン Set rs = CurrentDb.OpenRecordset("T1") ' テキストストリームをオープン Set reader = CreateObject("Scripting.FileSystemObject"). _ OpenTextFile("C:\theShit.txt", 1, 0, -1) ' ファイルの終端までループしてレコード追加 Do Until reader.AtEndOfLine tmp = Split(reader.ReadLine, vbTab) If tmp(0) = "フィールドA" Then If rs.EditMode = 2 Then rs.Update ' レコードバッファを保存(dbEditAdd=2) rs.AddNew End If rs.Collect(tmp(0)) = tmp(1) Loop If rs.EditMode = 2 Then rs.Update ' レコードバッファを保存(dbEditAdd=2) End Sub
パチパチ おまいらも拍手してやれ
12 :
10 :2007/12/29(土) 16:53:37
>10 のコメントだけ間違った。 本文に書いてあるとおり、FileSystemObjectだす。 誤:Dim reader As Object 'Scripting.TextStream 正:Dim reader As Object 'Scripting.FileSystemObject
13 :
10 :2007/12/29(土) 16:56:46
…と思ったら、間違ってなかったわ。 こんな短いコードでも、後で見ると自分でも読み違う。orz 精進精進。
フィールドも自動で作ってくれよ
16 :
10 :2007/12/30(日) 03:42:25
Tab形式のCSVへの展開くらい、WSHで作れよ そして、ここに書き込め
>17 にムリなのは、よくわかった。
ワロスワロス
オレオレ
ACCESS2007のVBAなんですが フォーム上で右クリックで、テキストフィルタ> 指定の値に等しい と同じことをする VBAを教えて下さい
質問なんですが、レポートで精算書を作りたいんですが、 手数料が件数100件未満の場合は180円で、それ以上の場合は170円になるんです。 そういう場合、レポートのコントロールソースはどう書けばいいんでしょうか。
=IIf(Count(*)<100,180,170) グループ化してグループヘッダかグループフッタにこう書いとけ
DoCmd.ApplyFilter "", "[コントロール1] like '" & "*" & Format$(コントロール2) & "*'" というコードがあります。教科書には コントロール1 Like *コントロール2* で検索可能と書いてあるのに、なんで&や"がこんなにたくさん必要なんですか?
無意味な & もあるな。
keydownイベントでshift+Spaceだけが機能しないんですけど、既出? それともおいらの書き方がわるいのかな? If KeyCode = vbKeySpace And Shift = 0 Then DoCmd.GoToRecord , , acNext 'spaceで次レコードへ If KeyCode = vbKeySpace And Shift = 1 Then DoCmd.GoToRecord , , acPrevious 'shift+spaceで前レコードへ shift=2(Ctrl+Space)、shift=4(Alt+Space)はちゃんと機能しました。Spaceで進んで、shift+Spaceで戻りたいのに出来ません。 どうか、ヒントを下さい。
>>27 自己レスします。
フォームのプロパティーで当該コントロールのIMEの設定をオフにしたら動きました。
お騒がせしました。
IMEがオンになっていると、なぜかshift+Spaceが使えないんですね。
そのほかにも、アルファベットでの移動(viのようなやつ)が効きませんでした。
でも、IMEをオフに設定したら動きました。
29 :
名無しさん@そうだ選挙にいこう :2008/01/06(日) 20:24:06
すいません、Accessのテーブルリンクの切り替えについて質問させてください。 テストA環境とテストB環境など、環境ごとに同じテーブル名があるため、 Accessのマクロにて以下のテーブルリンクを切り替えるものを作りました。 @DeleteObjectでリンクテーブルを削除 ATransferDatabaseでリンクを再度作成 その結果、マクロを実行するとAの段階でテーブルによっては 「3146:ODBC--呼び出しが失敗しました。 [Oracle][SQL]SQLデータ型が許容範囲外です」 となります。 手動でリンク付けをやってみたのですが、同じエラーとなりました。 なにが原因と考えられるでしょうか。 またテーブルはそのままにして、接続先だけを書き換える方法はありますでしょうか。 いろいろすいませんがよろしくお願いします。
30 :
名無しさん@そうだ選挙にいこう :2008/01/07(月) 02:07:29
WinXP、Access2000です。アクセスを勉強しはじめて1週間で右も左もわかりません。 VBAもわからないし、何をキーワードに検索したらいいかも 正直わかりません。 超基本なうえに質問もおぼつかなくお叱りを受けそうですが、 大変困っているため背に腹はかえられず、失礼ながら質問させていただきます。 *** テーブル1 顧客ID(主キー、オートナンバー)、氏名、電話番号 テーブル2 問い合わせID(主キー、オートナンバー)、顧客ID(テーブル1とリレーション)、日時、問い合わせ内容 フォーム1(レコードソース:テーブル1) 顧客ID、氏名、電話番号 フォーム2 問い合わせID、顧客ID、日時、問い合わせ内容 フォーム1の中に「入力」ボタンを設置し、それをを押すとテーブル1の顧客IDを持って フォーム2が入力モードで開く(問い合わせIDのみオートナンバーで採番される) ようにするにはどうしたらよいのでしょうか。 「入力」クリック時にフォーム2を追加モードで開くようにマクロで設定したのですが、顧客IDが空白です。
>>29 ADOXとVBAで処理した方が良いんでない?
リンク先書き換えだけなら、削除しなくて良いから。
で、エラーだけれども、多分、
Oracle - MDBのリンクを行う際に、
MDB側にマッピングされるデータ型に
収まりきらない値がテーブルに設定されているとかじゃないか?
32 :
名無しさん@そうだ選挙にいこう :2008/01/08(火) 21:36:43
【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 ACCESS フォームフィルタ 誕生日のフィールドを用いてフォームフィルタの練習をしています。 ちなみに、『30時間でマスターAccess2007』という本をさっき買ってきて、 それで勉強しています。 練習問題の中で、『1975年生まれの選手のレコードを連続して検索しなさい』というのがあります。それをやってみたのですが、うまくいきません。(データは付録のCDromに入ってます) 「詳細設定」→「フォームフィルター」とクリックし、 「生年月日フィールド」で#1975/01/01#-#1975/12/31#としました。 しかしうまくいきませんでした。 他にも、#1975/*/*#とか、#1975/##/###とかやってみましたがダメでした。 どうすれば、1975年生まれの選手を連続検索することができるでしょうか? ご指導のほど、よろしくお願い申し上げます。
>>32 日付ってLike使えなかったっけか。
Like "1975*"
あたりでいけるんじゃね?
手元にAccessないから確かめられないけど仮にできたとしても ロケール依存になりそうな気が・・・。 生年月日フィールドが日付時刻型で時刻が全部00:00:00って前提なら Between #1975/01/01# And #1975/12/31# たまに時刻00:00:00以外のゴミデータが紛れ込む可能性まで考慮すると >=#1975/01/01# And <#1976/01/01#
35 :
>>32 :2008/01/09(水) 01:35:47
>>33-34 お二人ともどうもありがとうございました。
明日、会社に行って試してみます。
本当にありがとうございました。
質問です。 月別の帳票を作成したんですけれど、祝日の色を変更することはできるのでしょうか。(土日はできました。)
抽象的な質問ですみません。 あるファンクションプロシジャーを呼ぶのに、 keydownイベントで呼び出すのと、マクロのautokeyのプロシジャーの実行で呼び出すのとで、動作後のカレントレコードが異なります。 keydownイベントだと一番前のレコードがカレントレコードになり、マクロだと当初のレコードがそのままカレントレコードのままです。 なんで、全く同じプロシジャーを呼び出しているのに、VBAで呼び出したときと、マクロで呼び出したときで変るのでしょうか? 抽象的ですみません。
当り前だ。 そういうの理解が面倒なら桐にしとけば楽。
40 :
>>32 :2008/01/10(木) 19:29:54
>>32 です。
>>33 様、
>>34 様、ご指導いただいたとおりやったら見事できました。
本当にありがとうございました。
おかげでとても助かりました。
41 :
38 :2008/01/11(金) 03:28:45
>>39 当たり前なんですか?
ヒントでもいただけたら。。。
キーワードがあれば検索しますので。。。
42 :
名無しさん@そうだ選挙にいこう :2008/01/11(金) 08:26:06
【 システム環境 . 】 WindowsXP SP2, Access2000 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 インポートされない Access2000で、あるCSVをインポートしたところ、数字の項目正しく入らない 事象が起きました。 (CSVでは"665554368"という数字が、Accessでは"665554340"になってしまいます。) 金額に該当する項目なので、正しく入らないと困るのですが、原因は何が 考えられ、どうすれば解決するでしょうか? 以下の方法を試しましたが、いずれもダメでした。 ・該当の値が入るフィールドのデータ型を以下のものにする。 →通貨型、単精度浮動小数点型、倍精度浮動小数点型 (いずれもダメです) ・CSVの区切り文字を別の文字に置換する。 →"|"だったものを、","区切りにしましたがだめでした。 ・CSVをExcel2003形式で保存し、Excelをインポートする。 →直接CSVをインポートしたときと同じ数字になりました。
フィールドのデータ型を文字型にしたらどうだろう?
質問させて下さい 【 システム環境 . 】 Windowsxp, Access2003 【質問内容】 メニューバー(ファイル,編集,・・・)が表示されない。何か操作を間違えて消えてしまったのでしょうか? 修復setupをやってみましたが変化ありません。 officeのアンインストール、再インストールは影響が大きすぎるのでまだやっていません。 よきお知恵を下されば幸いです。
>>46 [Shift] を押しながら起動してみて
windowsXP access2002 顧客名簿を作って、他のPCにmdbファイルを移したところ、 住所の県以下を取得する「市区町村番地:Mid([住所],InStr([住所],"県")+1)
49 :
48 :2008/01/14(月) 12:53:23
途中で、書き込んでしまった・・・。 つづき というのをクエリに書いているのですが、 作ったPCでは、正常に新しいフィールドができるのですが、 移したPCでは、「式に未定義関数'MID'があります。」と出てエラーになります。 見直しても、なんら変わらないのにエラーがでます。 移したPCもwindowsXP access2002です。 何が原因かわかりません。どなたか、アドバイスをよろしくお願いします。
いま、巨大なフォームAの上にフォームB〜Eが乗っているフォームを使っています。コマンドボタンでフォームF〜が呼び出せますが、これはフロート状態になります。 フォームA〜Eつまりフロートではないフォームにフォーカスがあるときはアクセスキーがいつでも使えます。 つまり、フォームBにフォーカスがあっても、フォームC用のアクセスキーが反応します。フロートのにフォーカスがあるときは反応しません。 このアクセスキーと同じ事をkeydownでやろうとすると、keydownをフォームA〜Eに記述しないといけなくなります。 アクセスキーの内容を一発で書けるコードはありますでしょうか?
53 :
46 :2008/01/15(火) 07:50:21
>>47 遅くなりましたがありがとうございました。
メニューバーを消すモジュール組み込んであるmdbを走らせてしまったようです。
そのときは右クリックも効きませんでした。なんとか解決できました。
54 :
名無しさん@そうだ選挙にいこう :2008/01/16(水) 18:46:09
今作ってるんですけど、 キーをオートナンバーにすると1から始まります。 取引先に請求書出すのに1とか2とか使うと 小さい会社だと思われるので、せめて100000からと6桁の番号からにしたいんです。 なんかいい方法ないでしょうか?
Windows PowerShell を使用して Microsoft Access データベースからレコードを取得する方法はありますか。
>>54 +10万でも+20万でも好きなだけ水増しした数字をレポートに印字しとけ
58 :
名無しさん@そうだ選挙にいこう :2008/01/18(金) 17:42:07
本当に初心者の質問です。 excelの表が、Accessにインポートできません。 ファイル→外部のデータの取り込み→インポートで ファイルを指定してインポートしても無反応。 ちなみに、 @フィールド名、データ型、フィールドサイズは両方一致してます A他の点でも問題なさそうです。 これは何でなんでしょうか? ちなみに、エクセルの表は、参考書が指定するHPからダウンロードしました。 誰か助けて・・・・
59 :
名無しさん@そうだ選挙にいこう :2008/01/18(金) 17:47:54
>>58 です。
ちなみにOSはwindows XP
ソフトはaccess2003
自分で作成したテーブルに、HPでダウンロードしたexcelのデータを
インポートしたいのです。
インポートすると、ワークシートインポートウィザードが
出てくるそうなのですが、
無反応なのです。 上にも書いたとおり、フィールド名他の要素は
確認したら一致していました。
どうぞよろしくお願いします。
60 :
名無しさん@そうだ選挙にいこう :2008/01/18(金) 20:44:34
ソートしてレポートをつくったとき、 ソートした結果で上から1,2,3,…とナンバーを振るにはどうし たらいいですか? ううう あああ いいい というテーブルから 1 あああ 2 いいい 3 ううう とレポートをつくりたいです。
>>60 そのレポートが使うクエリで並べ替えをすればいいのでは?
ついでに、
「っ」→「つ」のように小さい字を大きい字にする関数ってありますか?replaceが一番早いのでしょうか?
>61 並べ替えた上で、1,2,3…と番号をふりたいのですがどうやったらいいのでしょうか。
63 :
60 :2008/01/19(土) 08:55:43
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 自動 順番 番号 ナンバー クエリ、これらを組み合わせて すみません、以前の書き方があいまいでした。 [名前]というフィールドをもつテーブルがあり、 [名前]でソートしたクエリを作るとき、 [名簿番号][名前] という2つのフィールドにしたく、 名簿番号は名前のソートした順に1,2,3…と 上のレコードから順番に番号をつけたのです。 どのようにしたらできるでしょうか。
>>63 君には桐が向いてるよ、連番って関数が始めから用意してある
65 :
60 :2008/01/19(土) 09:12:03
>64 おぉ! おぬし、ツンデレですな。このスレの人みんなツンデレか? accessのヘルプで「連番」で検索したらわかりました! ありがとうございます。
66 :
前880 :2008/01/21(月) 01:01:05
前スレで以下の質問をしたものです。 【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 なるべく否 名前・第一希望・第二希望をフィールドに持つ このようなテーブルがあり、 名前|第一希望|第二希望 鈴木|モモ |リンゴ 佐藤|ブドウ |リンゴ 福田|リンゴ |ブドウ 守屋|モモ |イチゴ 阿部|ブドウ |イチゴ 以下のようなレポートを作成するにはどうしたらいいでしょうか。 クラス分けで考えましたが、第一希望と第二希望で 2箇所でグループを作りたいのですが、 いい方法はありますか? -モモ希望 鈴木|モモ |リンゴ 守屋|モモ |イチゴ -リンゴ希望 鈴木|モモ |リンゴ 佐藤|バナナ |リンゴ 福田|リンゴ |ブドウ -ブドウ希望 佐藤|ブドウ |リンゴ 福田|リンゴ |ブドウ 阿部|ブドウ |イチゴ -イチゴ希望 守屋|モモ |イチゴ 阿部|ブドウ |イチゴ
前スレで以下の質問をしたものです。 【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 なるべく否 名前・年齢・第一希望・第二希望をフィールドに持つこのようなテーブルがあり、 以下のようなレポートを作成するにはどうしたらいいでしょうか。 名前|年齢|第一希望|第二希望 鈴木|20|モモ |リンゴ 佐藤|25|ブドウ |モモ 福田|50|リンゴ |モモ 守屋|35|モモ |イチゴ 阿部|40|ブドウ |イチゴ 新たな要望が出てきて、第一希望が(モモ)の人を年齢順に並べ、 その下に第二希望が(モモ)の人を年齢順に並べたレポートを作りたいです。 -モモ希望 守屋|35|モモ |イチゴ 鈴木|20|モモ |リンゴ 福田|50|リンゴ |モモ 佐藤|25|ブドウ |モモ -ブドウ希望 (略 -イチゴ希望 (略 -リンゴ希望 (略 いい方法を教えてください。 自分のやってみた方法は以下です。
68 :
前880 :2008/01/21(月) 01:06:37
67の1行目は消し忘れです… 前スレでは、 >Unionクエリで擬似的に希望マスタ作れば。 >select 第一希望 as 希望 from T >union >select 第二希望 as 希望 from T >そしたら、こんな風なクエリを作れるべ。 >select Q.希望, T.* >from Q, T >where (Q.希望=T.第一希望) or (Q.希望=T.第二希望) というレスでできました。 今回、自分でやってみたのは、 第一希望で年齢順にしたものと、第二希望で年齢順にしたものを ユニオンでつなげたクエリを作り、 希望マスタでグループ分けしたレポートを作りました。 しかし、レポートでは年齢順に並びませんでした。
レポート使った事ないんでアレなんだけど、 UNIONクエリで作成されるデータで、レポート表示用にテーブルを作ってみたら? 取り出すSELECT文ごとに、'1'、'2'、'3' ってフィールドを追加しとけば、 いざレポートを作成するときのソートキーに組み合わせることもできるだろうし。
入力と出力の仕様の乖離があまりにも激しすぎる場合は
>>69 の意見が正解。
ちなみにレポート定義の並び順が設定されてるとレコードソースにどんなorder byが
設定されていようとレポート定義の並び順のほうが優先されるんだけど、それは大丈夫?
Access2003(WindowsXP SP2)をつかっています。 レポート中にpng透過画像を貼り付けたのですが、透過部分が"白"になってしまい、 透明になりません。 社名の上に押印した感じにしたかったのですが、なにかやり方ありますか?
社名の上に押印した感じのpng画像を貼り付けるんだ
73 :
名無しさん@そうだ選挙にいこう :2008/01/22(火) 23:45:27
重ねる順序を印鑑のpng画像を下にしてその上に 社名のテキストボックスもしくはラベルの背景を透明にする っていうのじゃダメ?
74 :
名無しさん@そうだ選挙にいこう :2008/01/23(水) 08:09:35
>73 それだと押印の上に社名が…って、釣りだったのですね、そうなのですね。
レポートの重ね合わせは、桐にしとけ
76 :
73 :2008/01/23(水) 10:02:30
>>74 >それだと押印の上に社名が…
そうだけど、印刷したら大して変わらないんじゃない?
別に釣りじゃないよ。
77 :
71 :2008/01/23(水) 10:31:31
>>76 試したんですが、雰囲気がいまひとつでした。
やっぱり文字の上に重ねたいですね、、、
って
>>73 のコロンブスの鶉の卵的な発想にやり方が良さそうです。
これでFAかと。
78 :
名無しさん@そうだ選挙にいこう :2008/01/23(水) 14:31:24
透過gifにしとけ とだけ言っておこう
社名だけの画像を持ったレポートと、社名・押印の画像を持ったレポートを用意しておき、押印フラグでopenreportを振り分けろ。
80 :
名無しさん@そうだ選挙にいこう :2008/01/23(水) 21:17:43
すみませんが教えてください。 CSVファイルをVBAでInput を使用して取り込もうとしています。 只csvファイルの先頭行に項目名があって それは取り込む必要がないのですが、どのようにすればいいのでしょうか。
>>80 手作業でインポートしてみて
ファイル→ファイブデータの取り込み→テキスト形式を選択
先頭行をフィール行として使うのチェックを入れ
設定をクリック、定義名をつける。
VBAでインポートする際その定義名を指定してインポートすればよい
Access csv インポート 定義
で検索すれば出てくるかな?
82 :
71 :2008/01/24(木) 09:37:53
>>78 世論では透過gifも使えないらしいですが、ひょっとしていけるの?
>>79 印影つきがあれば社名のみはいらないかと思ってます。
でも、そういう振り分けも気が利いてていいですな〜
83 :
名無しさん@そうだ選挙にいこう :2008/01/25(金) 17:35:07
select * from t1 left join t2 on t1.key = t2.key たとえばこんなケースで、各行のデータについて別個に if (t1.Value > t2.Value) then (t1.Value - t2.Value) * 10 else if (t1.Value > t2.Value * 2) (t1.Value - t2.Value * 2) * 100 + (t1.Value - t2.Value) * 10 else 0 としたい場合、どのような手段がよいでしょうか?? 結果をテーブルに挿入したいと思います。 できればSQL文で記述したいですが、VBAを使ったものでもOKです。 よろしくお願いいたします。
iifの入れ子にすればSQLでOK Nz(t1.Value, 0)は忘れずに
Access2000に関して質問です。 編集中の話なんですが、 ファイル内クエリ・マクロの数が増えすぎて視認性がかなり悪くなってきています。 クエリ・マクロなどをディレクトリ構造ぽく表示させたり、 編集する気のないものを他に移すなどの操作は可能でしょうか? それともこういうときは.mdbファイルを複数作るしかないでしょうか?
グループってのがあるけど、使い方がよくわからんな。
>>86 ショートカットのグループだから編集中はイマイチ使いにくいね。
ユーザーとして使うときは下手なメニューフォームより使い安い。
Microsoft Office Access 2007 のリリースと共に、Access 2007 Developer Extensions および Access 2007 Runtime の無料ダウンロードが利用できるようになります。 データベース開発者は、これらのユーティリティに用意されているツールを使用することで、データベースをパッケージ化して展開したり、データベース テンプレートを作成したりできるほか、 データベースを Microsoft Visual SourceSafe などのソース コード管理システムに統合することもできます。 Access 2007 Developer Extensions または Access 2007 Runtime のダウンロード方法と使用方法の詳細については、[参照] セクションのリンクを参照してください。
Access2007だと、フォームに作ったコマンドボタンにショートカットキーが登録できないのですか? &Aとか
90 :
89 :2008/01/31(木) 12:00:26
でけた つーか、MSは、なるべくXMLでリボン記述させようとしてヘルプをワザと手抜きしてる希ガス
Accessバグ多すぎだわ。 桐にしよ。
92 :
名無しさん@そうだ選挙にいこう :2008/02/03(日) 13:12:19
みなさんにとってはクソ簡単なことでしょうが、初心者の私には頭がパンクしそうなので教えてください。 Left関数の質問です。 Aという入力欄があり、そこに 111111111122222222 or 1111111111122222222 と入力できます。 2は8桁固定です。 しかし1が10桁or11桁なのです。 1だけを抜き出すのはどうしたらよいのでしょうか? Left(A,A-8) なんてことはできないのでしょうか??
簡単。でもLEFT関数だけじゃ無理。入力欄をA1として =LEFT(A1,LEN(A1)-8)
あ、ここACCESSだった。ごめん。でもやり方は同じよ
95 :
92 :2008/02/03(日) 13:29:43
>93 ありがとうございます。 できました。 感謝です。
96 :
名無しさん@そうだ選挙にいこう :2008/02/03(日) 22:20:05
型番 日付 A 2008/02/03 B 2008/02/04 C 2008/02/05 D 2008/02/06 E 2008/02/07 F 2008/02/08 エクセルで上記のような表があるとします。 クエリに関数を入れて本日〜4日後の2008/02/06までを”全て” 抜きとって表示したいのですが関数わかる方おられませんか。 2008/02/07と2008/02/08は不要としたいのです。 自動的に毎日4日間を抜き取ることはできますか?
>96 日付部分の抽出条件に Between Date() And Date()+4
98 :
sage :2008/02/05(火) 18:02:19
エラーの説明を取得したいのですが、 AccessError(エラー番号)でエラーの内容を取得すると 既定の文書は表示できるのですが、 例えばエラー2473で説明文の|2と|1を取得することは可能でしょうか?
AccessClubで質問してみます。マルチすみませんでした。
【 システム環境 . 】 WindowsXP**, Access2003 SP3** 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 mdb リンクテーブル バックアップ 現在システムMDBとデータMDBを作成しリンクテーブルを張って動かしています。 システムMDB起動中にフォームのコマンドボタンからデータMDBのバックアップをとる方法を教えてください。
101 :
名無しさん@そうだ選挙にいこう :2008/02/09(土) 17:22:57
バックアップと同時に最適化もできておすすめ DBEngine.CompactDatabase "C:\××××\Data.MDB", "C:\データバックアップ\Data.MDB"
102 :
名無しさん@そうだ選挙にいこう :2008/02/09(土) 17:45:06
クロス集計で前年同月との売上比較を行っています。 クエリ実行後の形が 200701 200801 売上先1 50,000 65,000 売上先2 30,000 40,000 … となっているのですが、この右側に前年同月比の増減を設けるにはどうしたら良いでしょうか。 列名は年+月なので、毎月変わります。 現在増減はエクセルを介して作成しているのですが、 アクセス上で完結させたいのです。宜しくお願いします。
103 :
名無しさん@そうだ選挙にいこう :2008/02/09(土) 18:58:33
>>102 クロス集計クエリーをべースにクエリーを作れば
いいんじゃないかな
102です。 増減部分が上手く行かないのです。 >103さんならどのように記述しますか?
>>101 回答ありがとうございます。
この式はdata.mdbが閉じていることが条件のようですが、
システムmdbとdata.mdbはリンクテーブルを張っていますのでシステム側から、この式を実行することができません。
何か解決方ありますでしょうか
リンクテーブルが張ってあるだけなら問題なく実行できる、 実行不可なのはリンクテーブルのどれかが使用中だから。 連結フォームや連結レポートはきちんと閉じて、data.ldbの有無を 事前にDir()関数で調べてから実行しる。
107 :
名無しさん@そうだ選挙にいこう :2008/02/10(日) 14:16:21
>>104 >>104 102の結果になるようなテーブルをつくって
クロス集計をベースにしたクエリーを作ってみたけど
差額は計算されたよ
SQLで表示させたら以下になった。
SELECT テーブル2のクロス集計.売上先, テーブル2のクロス集計.[200701], テーブル2のクロス集計.[200801], [200701]-[200801] AS A
FROM テーブル2のクロス集計;
列見出しが毎月変わるという問題があるけど
抽出条件の設定をどうやっているかわからないので
とりあえずこれだけで
108 :
名無しさん@そうだ選挙にいこう :2008/02/10(日) 14:16:27
もうバッチ使ってコピーしちゃえば hoge.bat 作って XCOPY C:\××××× C:\バックアップ/Y ってコマンド書いて Call Shell("C:\hoge.bat", 1) で実行するのはどう?
109 :
名無しさん@そうだ選挙にいこう :2008/02/10(日) 16:25:47
Access初心者です。申し訳ありませんが知恵をお貸しください。 【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 質問内容】 AccessをWeb上の画面で使用することは可能でしょうか? Access2003では作成する機能があったと思うのですが・・・。 インポート(エクスポートかも?)などでテーブルを表示するだけでなく web状で実際に「名前」や「年齢」などを設定して「検索ボタン」で該当する データが見れるようにしたいです。 よろしくお願いいたします。
110 :
名無しさん@そうだ選挙にいこう :2008/02/10(日) 18:12:22
>107 ありがとうございます。 しかし問題は、おっしゃる通り列見出しの処理です。 また、多重クエリではどうしても 列名称が一度フィックスされてしまい、動的に対応できません。 そのため、できれば単一クエリで一石二鳥の解決策を探しています。 とりあえずは クエリ1で、当月以前の月に"0","1","2"... と列名称を付け、13ヶ月分を集計。 クエリ2で、クエリ1の列"0","12"をそれぞれ"当月","前年同月"として再抽出し、 "[当月]-[前年同月]"を増減として抽出しました。 ご協力ありがとうございました。ですが もっとエレガントな解決法があればお知恵をよろしくお願いします。
>>101 >>106 >>108 いろいろと回答ありがとうございました。
結局、DBEngine.CompactDatabaseを使ってリンク元バックアップをとりました。
システム.mdbの終了時に確認フォームを設け、data.mdbのバックアップをとるかどうかのチェックボックスを作り便利になりますた。
113 :
名無しさん@そうだ選挙にいこう :2008/02/14(木) 16:54:09
【 システム環境 . 】 Windows2000/XP, Access2000 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 初歩的な質問すません。 <実現したいこと> フォームのサイズが変更されても常にフォームの一番下にボタンを表示したいのだすが なかなかうまいこといきません。。 <試してみたこと> フォームの最大化ボタンを有効にしてそれが押されたらフォームリサイズイベント(Form_Resize())で フォーム上のコントロールのTOPとLEFTを変更して位置を移動したいんだけどエラーが発生します。 フォームが最大化する前のエリア外には移動できないみたいです。。 (エラー番号:2100 エラー内容:コントロールまたはサブフォーム コントロールが大きすぎるため、配置できません。) 解決方法がありましたらぜひ教えてくださいませm(_ _)m
>>113 ボタンをフォームフッタに配置する。(のは駄目なのか?)
フォームのサイズ変更不可にしちゃいなYO!
116 :
113 :2008/02/15(金) 09:54:40
レスありがd
>>114 おっと書き忘れ、単票フォームで表示してるんす。。
帳票フォームだったらその手がありますね(^-^)
>>115 最初はそうしてたんだけどお客さんのディスプレイ解像度がまちちまでさ…
17インチ使ってるのに1024x768にしてる人がいてびっくり。。
常にフォームの一番下じゃなくて、上にボタンを配置するしかないかなぁと考えとります。
(他の画面とはボタン配置が違っちゃうけど泣き入れよかな。)
単票フォームにヘッダやフッタがないのか?
118 :
113 :2008/02/15(金) 15:01:16
>117 単票フォームにヘッダやフッタ、ありやした〜!(すっかり無いものと勘違いしてたす) フッタにボタンを置いて問題解決っす!! どうもありがdッ!!
120 :
名無しさん@そうだ選挙にいこう :2008/02/15(金) 22:28:22
>119 ぐぐって見ましたが良く解りません。 具体的にどうしたら良いでしょうか?
[年月] に1年足した [年月+1年] を作って、[年月] と [年月+1年] をリレーション
まあフィールド名が動的って時点でうんこ設計なんですけどね
フォームテキスト内に既にある内容を、バックスペースやデリートで空にした瞬間、 同フォームのコマンドボタンを使用不可能にする処理を教えて下さい。 因みに自分が書いたコードは次の通りですが上記のように動きません。 Private Sub テキスト_Change() If IsNull(Me!テキスト) = True Or Me!テキスト = "" Then Me!コマンドボタン.Enabled = False Else Me!コマンドボタン.Enabled = True End If End Sub
OnDirty
>>124 回答ありがとうございます。
Dirtyイベントは既に試しましたが、使用フォームが連結フォームでないため機能しないようですね。
私のフォームは非連結フォーム、非連結テキスト。。。
もう少し考えてみます。
また良い案がありましたら教えて下さい。
OnKeyUpでTextプロパティ見りゃいいじゃん。
Private Sub テキスト_AfterUpdate() ならおK
>>123 プロパティを暗黙的に使用するとこういう間違いが起きやすい。
Me!テキスト.Value
Me!テキスト.Text
この2つの違いをきちんと理解しる。
>>126 さんも言ってるけど、この場合はTextプロパティを参照すれば
ChangeイベントでもOnKeyUpでも実現可能。
129 :
126 :2008/02/16(土) 18:03:23
>>128 >123 の「バックスペースやデリートで空にした瞬間」だけ満たしゃ
いいなら、どっちでもいいね。
後は右クリックから切り取りや貼り付けされたときにどうしたいのか
によってお好きな方でって感じかな。
いろいろと有り難うございます。 勉強になりました。 みなさんの回答を拝見するほど自分の無知を痛感しますorz
131 :
名無しさん@そうだ選挙にいこう :2008/02/16(土) 20:37:58
お聞きしたいのですが クエリを削除してもHDの容量が減らないのですが これは永久的に減らせないのでしょうか? テーブルについてもそうなのでしょうか?
キタ━━━━━━━━━(゚∀゚)━━━━━━━━━ !!!!! A few readers have recently expressed concern and anxiety about an article published by The Register. Particularly, “VBA will disappear completely when Office 2007 for Windows is replaced, sometime around 2009.”
これって次のofficeでVBAがなくなるってこと? 機械翻訳 数人の読者が最近、Registerによって発表された記事に関して関心と心配を述べました。 特に 「完全にいつか2009年にWindowsのためのオフィス2007を取り替えるとき、VBAは見えなくなるでしょう。」
これは恥ずかしい。 ネタ元が「誤報でしたスンマソン」と言って訂正した記事を今ごろ出されても。w ちなみに、オリジナルはこの下に「んなこたねーよ」というのが続くんだけど、 そこはわざとカットしてある。 釣られたい人だけ釣られてください。
Access2009ではVBAは付属しない、別途Visual Studioを購入する必要がある。 別にVBAがなくなる訳ではない。
そんなんなったら事実上業務に使えなくなるじゃん オマケで付いてるからこそ、用途の幅も広かったのに。 MS様も解っててやるんだろうけど。
ソースもないネタ真に受けんなよw 必死杉ww
既にMSDNライブラりからVBAが削除されてるしなぁ Access2009でVBA動いてもエディタ削除されたら新規作成も編集も出来ないし
2007にさえ上げる予定のない漏れに、2009の話なんてしてもムダ。
KINGSOFT Office にVBAライセンスされたけど、やはりエディタは付属しないな
VB自体が.netに移行するし。
ま、Officeは2007で変なことになってるし桐にしろってこった。
.NET Framework入れてメモ帳で開発するお!
Mac版Office 2008ではVBAがなくなったな。
なくしたというより、間に合わせる時間がなかったらしい。
ねえ、SQLマスターすればVBA使わなくてもアクセス不自由なく使いこなせますか?
単純なSelect文なら選択クエリの方が簡単
VBAマスターすればマクロ使わなくても不自由しない。 VBAとSQLの知識はそれぞれ別モノだから完全に使いこなすには両方とも必要。
VBA使わないと非常に不自由するだろうな
まだVHS使ってるオレは勝ち組。
152 :
名無しさん@そうだ選挙にいこう :2008/02/20(水) 11:36:22
【 システム環境 . 】 WindowsXP, Access2000 SR-1 professional 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 更新できないクエリ 複数のリレーション テーブル1 取引先ID(主キー、オートナンバー)、会社名、営業担当、営業補佐担当 テーブル2 社員ID(主キー、オートナンバー)、氏名 クエリ1 テーブル1:営業担当、テーブル1:営業補佐担当は、取引先に対する当社の担当者のことで、それぞれテーブル2:社員IDをルックアップさせ、テーブル2:氏名を表示させたい。 …のですが、同じフィールドに2つのリレーションがダメみたいで、うまくいきません。 どうしてたらよいでしょうか。 アクセス初めてまだ数ヶ月の初心者です。 みなさまのお知恵をお貸しください。 よろしくお願いいたします。
クエリデザインのテーブル表示で、同じテーブルでも追加できるはずだが・・・
154 :
152 :2008/02/20(水) 13:27:41
>153さん なるほど…。 と思ってやってみたのですが、うまくいきません。 ・リレーションシップを開いて、テーブル2_1を追加。 テーブル2:社員ID(1) - テーブル1:営業担当(多) テーブル2_1:社員ID(1) - テーブル1:営業補佐担当(多) のようにリレーションを設定 ・クエリのデザインビューにおいて、すでにあるテーブル1とテーブル2(1-多のリレーションが表示されている)にテーブル2_1追加。 ・テーブル2_1:社員ID - テーブル1:営業補佐担当 を連結させる。 テーブル2_1:社員ID - テーブル1:営業補佐担当 の連結はできたのですが、1-多になりません。 データシートビューにするとレコードがまったく表示されなくなってしまいます。。。
大きな勘違いしてないか?
156 :
152 :2008/02/20(水) 15:37:42
>155 そうなんですか? なにを勘違いしているのかわかりません。 おしえていただけないでしょうか(>_<)
・リレーションシップを開いて、テーブル2_1を追加。 テーブル2:社員ID(1) - テーブル1:営業担当(多) テーブル2_1:社員ID(1) - テーブル1:営業補佐担当(多) のようにリレーションを設定 これがいけない。 とりあえず、リレーションは取り消すべし。
158 :
152 :2008/02/20(水) 17:35:48
>157 >とりあえず、リレーションは取り消すべし。 テーブル2_1:社員ID(1) - テーブル1:営業補佐担当(多) をはずしてみまら、できました。 いまいちよくわかってないんですが、 テーブル2:社員ID(1) - テーブル1:営業担当(多) もはずしたほうがいいでしょうか? 何度もすみません。
意味もわからずヘタにリレーションを張ると、 障害の元になる。 アクセスに慣れるまでは一切つかうなもし。
160 :
155 :2008/02/20(水) 18:12:59
>>158 良く解らないなら、デーブルデザインの所でルックアップウィザード使って設定しなさい
データ型のあたりにルックアップって書いてある所あるから、そこらへん弄ってみて、たしかルックアップウィザードが起動する
161 :
152 :2008/02/20(水) 18:42:38
>158-159 レスありがとうございます。 >良く解らないなら、デーブルデザインの所でルックアップウィザード使って設定しなさい ルックアップ使ってます。 たとえば、 テーブル2:社員ID(1) - テーブル1:営業担当 をルックアップさせただけだと、クエリで テーブル2:氏名 が表示できなかったので、 リレーションを組まないとダメなのかなと思ったのですが、 いろいろおしえてもらってやっているうちに、リレーションを組まなくても表示できたので、 ???となってしまい、「はずしたほうがいいでしょうか」と聞いてみました。 練習で作ってますので、いろいろ試行錯誤しています。 でも、 >アクセスに慣れるまでは一切つかうなもし。 ということは、リレーションなしでもいけるということみたいなので、 ご意見に従って作ってみることにします。 また、何かありましたら質問させていただきます。 よろしくお願いいたします。
162 :
名無しさん@そうだ選挙にいこう :2008/02/21(木) 11:50:41
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 テーブルで新規レコードを追加してもクエリに追加されない 初心者です。 すごく困っています。 テーブルからクエリ、フォームを作成したのですが、 テーブル上で新規レコードを作成するとクエリ、フォームに反映されなくなってしまいました。 いつ頃からそうなったのかわからないのですが、 レコードを詳しく調べてみたら、 以前に追加クエリを使って追加したレコードがテーブルにはあるのですが、クエリにはないことがわかりました。 それ以降なのかわかりませんが、現在はテーブル上からの新規レコードがクエリ、フォームに反映されません。 選択フィルタがかかっているわけでもありません。
163 :
名無しさん@そうだ選挙にいこう :2008/02/21(木) 11:52:27
すいません、162の続きです。 具体的には、 テーブル上で新規レコード作成 : クエリ、フォームに反映されない クエリ、フォーム上で新規レコード作成 : テーブル、クエリ、フォームすべてに反映される 状態です。 なお、オートナンバーフィールドは、テーブル上から作ったレコードを反映して連番されています。 例) テーブル上 オートナンバー │ フィールド1 100 │ いちご 101 │ みかん ←更新クエリで作成 102 │ ばなな ←更新クエリで作成 103 │ めろん ←フォームで作成 104 │ すいか ←テーブルで作成 105 │ れもん ←フォームで作成 (レコード番号ボックスの右の総レコード数は6) クエリ、フォーム上 オートナンバー │ フィールド1 100 │ いちご 103 │ めろん ←フォームで作成 105 │ れもん ←フォームで作成 (レコード番号ボックスの右の総レコード数は3) どうか、よろしくお願いいたします。
クエリ、フォームのデータソースは該当テーブルなのか確認汁
165 :
163 :2008/02/21(木) 14:41:30
>164さん レスありがとうございます。 確認したところ、間違いないようです。 確認方法:テーブルにテストフィールドを追加したところ、クエリにも同フィールドが追加されました。
じゃ問題ないじゃん
出てきてないけど結合の使い方間違ってんじゃね
クエリなんだからWHERE句がどうなってるか確認するのが先なんじゃね
質問させて下さい フォームテキスト内のコントロールをテーブルのIDフィールドとしています 実際にテキストを表示させたとき例えばIDが10なら ID : 10 と表示させたいのですがお願いします
170 :
162-163 :2008/02/22(金) 11:23:00
自己解決しました。 単純ミスでした。 お騒がせして申し訳ありません。 レスをいただいた皆さま、ありがとうございました。
172 :
名無しさん@そうだ選挙にいこう :2008/02/22(金) 19:01:00
従業員名簿作ってます。 フォームに画像を表示させたいのですが、 ○○○○.jpg だけ表示されてダブルクリックしないと写真が表示されません。(泣) 本の手順通りやってますが原因不明。 誰か助けて下さい!m( )m
自己解決しました。 単純ミスでした。
176 :
174 :2008/02/23(土) 16:16:34
自己解決しました。
177 :
175 :2008/02/23(土) 16:28:32
自己解決しました。
次々と自己解決してしまう魔法のスレはここですか?
179 :
178 :2008/02/23(土) 20:54:26
自己解決しました。
180 :
名無しさん@そうだ選挙にいこう :2008/02/23(土) 23:40:53
自己発電しました。
じゃ、おれも
ちょ、ちょっと待ってくれ。俺も今からするから。
すなーーーーーww
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 Googleやヘルプでの検索キーワード ファイルの1行目から5行目までがヘッダになっていて 実データが6行目からスタートするテキストファイルをインポートしたいです。 途中の行からインポートする方法を教えてください。
ファイルの1行目から5行目までを削除してからインポートしてください。
すみません、自己解決しました。
自己解決しました。
自己介錯しました。
よく釣れるスレはここですか?
テーブル クエリ フォーム レポート
ビュー ストアドプロシージャ
エ ォ ム ポ ビ スト ロ
193 :
名無しさん@そうだ選挙にいこう :2008/03/01(土) 22:56:36
┌─‐‐─┐ みなさんは2ちゃんねるの初心者ですか?書き込む前に |_____________| SG(セキュリティー・ガード)に登録しないと自作自演がバレてしまいますよ。 ='========='== SGに登録せずに書き込んだ場合、あなたのパソコン内の / \ /│ 情報は他人に見られていると考えてほぼ間違いないでしょう。 ┌|-(・)-(・)-|┐ 自作自演がばれる方の多くはこの登録を怠っています。 └| 〇 .|┘ 初期の頃から2ちゃんねるにいる方達は、ほとんどの方が | ___ |||||__ | このBBSのコマンドの仕組みを知っています。ですから簡単に | \__/ | あなたのIPアドレス等を抜き取り自作自演を見破ってしまいます。 | ||||| | このコマンドの方法は決して教えないというのが初期の頃から 2ちゃんねるにいる方達の間で暗黙の了解となっていましたが、 あまりの被害の多さに心を痛めた私はあえて公開することにしました。 SGしておけばまず抜かれるコマンド自体が無効になってしまうのでどんなにスキルが ある人でもIPアドレスを抜くことが不可能になります。SGに登録する方法は、 名前欄に「 fusianasan 」と入れて書き込みする。これだけでSGの登録は完了します。 一度登録すれば、Cokkieの設定をOFFにしない限り継続されます。 fusianasanは、正式にはフュージャネイザン、又はフュジャネイザンと読みます。 元々はアメリカの学生達の間で、チャットの時にセキュリティを強化する為に 開発されたシステムです。これを行うことにより同一人物が書き込んでいるか どうか判別する手段が遮断されるので安心です。ぜひ書き込む前には 名前蘭にfusianasanと入力してください。自分の身は自分で守りましょう
194 :
名無しさん@そうだ選挙にいこう :2008/03/09(日) 18:51:51
自己解決しました。
完成まで3か月あまりかかった大事なmdbを大切に保管しようと思いUSBメモリにバックアップしたよ 数ヶ月後、USBメモリになんかに大事なデータ入ってないや、消しちゃえってUSBメモリフォーマットしたよ そして俺は終わった
197 :
名無しさん@そうだ選挙にいこう :2008/03/10(月) 19:51:09
【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 レポート作成時、ルックアップフィールドに指定した複数列(項目)が参照できません。 はじめまして、お世話になります。 現在ルックアップフィールドを含むテーブルを元にレポート作成をしています。 テーブルでは商品IDの値を商品マスタより商品ID・商品名・価格の3項目を参照している形です。 テーブルの列では商品IDのみが表示されている状態ですが、レポート作成時には商品名・価格も表示させたいのです。 ルックアップフィールドの非表示項目を表示する方法はございますでしょうか? 商品ID(0),商品ID(1),商品ID(2)といった形で参照できるかと思ったのですが どうも無理なようです。 ご存知の方いらっしゃいましたら、是非ともご教示いただけますようよろしくお願いします。
>>197 ルックアップウィザードなんぞ使わんでも・・・ってか使ったこと無いなぁ
テーブルのリレーションって知ってるかぃ?
×ルックアップウィザード ○ルックアップフィールド だったかw とにかくあれだ レポートのレコードソースにSQLで結合して書けば問題なしじゃ?
200 :
名無しさん@そうだ選挙にいこう :2008/03/10(月) 22:12:32
>>198 >>199 レス頂きどうもありがとうございました!
お返事いただいたとおり、レコードソースのところでクエリーをビルドしてやれば値は参照できます。
ただ、せっかくテーブルでルックアップ(フォームのコンボボックスなどでは商品名も金額も表示されている状態)してくれているので、
簡単に参照できるスマートな方法があるはずと思い質問させていただいた次第です。
上にも書きましたが、商品ID(0),商品ID(1),商品ID(2)といった形だとエラーが表示されるので、
配列のような形ではどうも参照できないようです。
もし無ければお答えいただいた方法でさせていただきますが、
他に方法があれば是非ともご教示ください。
よろしくお願いします。
201 :
名無しさん@そうだ選挙にいこう :2008/03/10(月) 22:36:50
>>200 テーブルのリレーションしてれば勝手に出るはず・・・・
きちんと説明するが、フォームでは通常ルックアップは使わないから
そう説明したのよ。
レポートではルックアップ使ってもいいが、レポート用に
テーブル作成してからじゃないとダイナセットでロックするとエラー起こしても
知らんぞ
なんで商品(0)何ぞ配列みたいな指定するのか意味がわからん
そもそもコントロールのデータに 商品(0) って指定してるのか?
AccessはGUIの凄まじい生産性の高さがすべて。 バックエンドは今となってはMSSQLでもSQLiteでもMyでもPでもOでも2でも何でもいいわ。 SQLiteすすめんならAccessなみのGUIをかぶせてくれ。APIなんか叩きたくないわ。 漏れはとりあえずAIRから何か出てくるのを寝て待つ。
204 :
名無しさん@そうだ選挙にいこう :2008/03/10(月) 23:19:07
>>202 何度もすみません。
レスいただき、ありがとうございます。
テーブルを操作するフォームでは、基本的に更新や削除のクエリーを使用しております。
レポートの場合もご指摘いただいたとおり、レポート用のテーブルなどを作成して対応させていただいております。
ただ今回の件はACCESSの豆知識レベルの話で、こんなこと出来ないのかなと疑問に思った訳でして・・・・。
テーブルではルックアップの設定で複数列の情報を持っているようなのに、
その情報を簡単に参照する方法があれば知りたかったんです。
配列のように書いたのは単なるイメージで、あれに近い方法で参照する方法があるのかなと思っただけです。
そもそもルックアップっていうのもクエリーということで、実際にテーブルには複数列情報を持ってるわけでは無いのでしょうか・・・?
すみません、いろいろ有難うございます。
ダメモトでもう少しいじってみますね!
205 :
名無しさん@そうだ選挙にいこう :2008/03/10(月) 23:26:55
ルックアップとリレーションシップを混同している人が複数いる件
>>200 >フォームのコンボボックスなどでは商品名も金額も表示されている状態
レポートでもフォームと同じ方法が(普通はやらないけど)使えるよ。
フォームと同じようにレポートにコンボボックス配置して
フォームと同じように別のテキストボックスのレコードソースに.Column(1)とか.Column(2)とか
指定してやるだけ。
フォームで出来てるからレポートでもやりたいということなら、どうぞ。
普通はやらないけど。
207 :
名無しさん@そうだ選挙にいこう :2008/03/11(火) 17:48:13
こんにちは。 Access2000を利用しています。 テキスト型に英語の大文字/小文字の混じったものを登録すると、 一部自動で大文字が小文字に変換されてしまいます。 このいらない機能を回避したいのですが、方法を教えていただけますでしょうか? よろしくお願いいたします。 例:TOb → Tob など
ツール→オートコレクト で、該当する自動修正のチェックをはずす。
ラベルの上にマウスポインターが来たときに そのポインターを指マークとかになるようにできますか? 動きとしてはブラウザでリンクあるところにカーソル持っていった時みたいな感じです。 よろしくお願いします。
210 :
207 :2008/03/13(木) 16:25:53
>208 ありがとう!
211 :
名無しさん@そうだ選挙にいこう :2008/03/13(木) 19:40:35
ひとつのレポートに「ヘッダ、詳細、フッター」を 3つ作ることは可能ですか?
ヘッダーとフッターはグループレベルがあるからともかく、詳細は無理。 目的をはっきり晒せ。 その質問が出ること自体、手段の選択を誤っている気がするぞ何となく。
サブレポート3つ作ればいいんじゃね?
214 :
211 :2008/03/13(木) 21:36:35
3つのレポートを1ページづつ印刷したいのです 一つのレポートで複数ページがあって 各レポートの一ページづつを順に印刷したいです 仮に3つのレポートが3ページづつあり 1-1,1-2,1-3 2-1,2-2,2-3 3-1,3-2,3-3 (1-1はレポート1の1ページ目の意) であった場合 現状は 1-1,1-2,1-3,2-1,2-2,2-3,3-1,3-2,3-3 という順で印刷されますがこれを 1-1,2-1,3-1,1-2,2-2,3-2,1-3,2-3,3-3 と言う風に印刷したいのです で、先の質問は レポートのデザインがあのように変更できれば(一つのレポートで3つ詰められたら) 希望の順番で印刷はできるな、と考えての質問でした。 不明瞭な質問で申し訳ありませんでした。 良い打開案が得られれば幸いです
>>214 その3つのレポートって同じレコードソースなの??
216 :
211 :2008/03/13(木) 21:45:55
レコードは同じモノです
217 :
211 :2008/03/13(木) 21:49:38
レコードは同じモノです
ヘッダの高さが一緒でいいなら3ページ分横にならべたらどう?
>>217 うーんレコードソースが同じならいくらでも並び替えはできそうな気がするけど・・・
手数かもしれないけどテーブルとフィールド名出せるかな?
220 :
211 :2008/03/13(木) 22:53:37
今手元にデータがないのでなんともならないです。 申し訳ない。
納品書→受領書→請求書と3枚ひと綴りにして連続印刷するイメージか・・・?
222 :
211 :2008/03/14(金) 06:09:55
221>> です、そういう感じです。
223 :
名無しさん@そうだ選挙にいこう :2008/03/14(金) 15:32:34
レコードソースが同じという前提で 納品書-受領書-請求書-売上元帳 4枚を順次 印刷ならやったことがある。 個別に作ったそれぞれのレポートを、縦にサブレポートとして 4枚埋め込んだ大きなレポートを作って印刷する仕様でできたけどね ┌───┐ │┌─┐│ ││ 1││ │└─┘│ │┌─┐│ ││ 2││ │└─┘│ │┌─┐│ ││ 3││ │└─┘│ └───┘ ↑こんな感じ 納品書1枚目-受領書1枚目-請求書1枚目-元帳1枚目 : : 納品書X枚目-受領書X枚目-請求書X枚目-元帳X枚目 という感じで出てくるけど。
224 :
211 :2008/03/14(金) 21:34:29
ご協力ありがとうございました 皆さんのご助言を参考にいろいろ試した結果 目的の印字が出来ました。 ありがとうございました
225 :
名無しさん@そうだ選挙にいこう :2008/03/14(金) 21:52:57
DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ DQN男消えろ
226 :
名無しさん@そうだ選挙にいこう :2008/03/14(金) 21:53:24
でも具体的にどうやったかは書きません。
228 :
227 :2008/03/14(金) 22:07:23
すまん。 API使わなくてもできるらしいが、 ちょっと裏技的。
Pushing Access data to the web: Integrating with Office Live Small Business
超初心者です。 会社がそうなので、バージョンは97です。 品番CDの発売年月別のカウントをしたいんですが、 どうクエリを作ればいいでしょうか?
1.クエリで「品番」「発売年月」を抽出 2.クエリデザインで集計(Σ)→ 集計条件に、「品番」は"カウント"、「発売年月」は"グループ化"を設定
232 :
名無しさん@そうだ選挙にいこう :2008/03/17(月) 12:06:18
非常に困っています。どなたか救いの手をさしのべて下さい。
よろしくお願いします。
★ OS WindowsXP SP2、ACCESS2000
・フォームを使って前方一致や後方一致、部分一致のあいまい検索を行いたい。
・クエリにて抽出条件に「Like "*"&[form]![検索]![リスト] &"*"」と入れました。
・この条件だとフォームに入力した条件を抽出してくれず、全てのデータが表示されてしまう。
テーブル/受注テーブル クエリにて受注先名称フィールドに上記の抽出条件を入力。
★ 事前にヘルプ・Google等で調べたところ
http://www.accessclub.jp/bbs3/0049/superbeg19247.html ▼━━━━━━━━━━━━
【 システム環境 . 】 OS WindowsXP SP2、ACCESS2000
【 VBAが使えるか .】 いいえ
【 VBAでの回答 】 否
【 検索キーワード 】 ACCESS あいまい検索
>>232 クエリ内に書いてるのなら
Like '* & [form]![検索]![リスト] & *'
モジュール内なら
"Like '*" & [form]![検索]![リスト] & "*'"
234 :
232 :2008/03/17(月) 14:49:40
>>233 おかげさまでうまくいきました。
ありがとうございました。
>>231 d。
ちなみに発売日から発売月別に抽出する条件は
例えば、200701*でOKですよね?
NG
だめ
らめぇ
発売日の格納方法によるんじゃないの
その場合はそれがダメなんじゃないの
バーカ
Microsoft Office Live Workspace にウプして Share point list に変換して たテーブルで、コンボボックス使うには、どうすれば良いですか?
243 :
名無しさん@そうだ選挙にいこう :2008/03/20(木) 19:56:12
すみません教えてもらいたいのですが ACCESS で Aのフォームから 開いている別のBのフォームのSUB PROCEDURE って 実行できますか? それとも必ずPublicのPROCEDUREを呼び出すことになるのでしょうか? よろしくお願いします。
Privateだと外部から呼べないよ。スコープってそういうもの。 Publicにすれば済む話では。 なんかPublicにできない理由でもあるの?
>>243 Publicプロシージャは標準モジュールに置くものだと思い込んでる?
244の言うようにフォームのプロシージャをPublicにして
↓
Call Form_フォーム名.プロシージャ名
2007の分割フォーム内で、データシート部分と単票部分を行き来するショートカットありませんか? また、作れませんか?
フォーム詳細セクションの背景色をイベントで設定しようとすると、エラーが出ます。 私だけですかね。 Access2007です。
ODBCへのデータソースを設定せずに、 VBA内で動的にODBCリンクしてADO接続したいのですが可能ですか?
>>248 日本語でOK。
相手先RDBMSにもよるが、
ADOならネイティブ接続でいいだろ。
ODBC噛ませる理由が分からん。
>>249 賛成w
>>248 APIでODBC設定いじれたはずだが意味はまったく無いね
accessで違うDB使うなんて微妙な事するわけ?
ACCESSで顧客管理DBを作成した場合、 部署内の共有サーバにMDBファイルを配置すれば、 最大20名くらいで同時利用しても問題ないでしょうか? それともSQLサーバを入れないと使えないとか、最大2Gまでしか使えないとかで、 実際にはきちんとしないと実用的に使えないものでしょうか?
頻繁に書き込みがあるとは思えないし,問題ないでしょ。
ありえん
まさかMDBファイル1個だけ置いてみんなでそれ開くつもりかな? あと、利用ユーザが20名って意味じゃなく、ほんとに20クライアント同時接続するの? それによってもかなりレスが変わると思うけど。
255 :
251 :2008/03/25(火) 22:16:22
>>252 ありがとうございます。
ちょっと安心しました。
256 :
251 :2008/03/25(火) 22:19:40
>>254 えっと、イメージとしてはMDBファイル一個で、
利用ユーザー数20名くらい。
ただ役割分担により、同じ顧客の重複利用はそれほど多くはないと思いますが、
参照のみでしたら、当日の更新申請データは同時参照が多く発生する
可能性があります。
>>256 テーブルのリンクを勉強しなさい・・・・・
いやそれ以前にフォームにテーブルが直結してるのか・・・・
せめてダイナセットとスナップショットくらい使い分ければなんとか
なるかも・・・・しれないな・・・
君のその知識でSQLサーバーはどうせ無理なのでは?
258 :
256 :2008/03/26(水) 07:31:23
>>257 ヒントをいただきありがとうございます。
そのあたりをよく調べてみます。
フォームでデータ訂正時に、 特定フィールドの訂正が終了するまで当該テキストボックスからフォーカスが移動できないようにしたいんですけど 何か方法はありますか?
260 :
259 :2008/03/26(水) 09:25:23
特定フィールドじゃなくても、複数のアイテムフォーム・表形式フォームで特定レコードでも良いです 操作者が無関係な部分のデータを弄ちゃわないようにしたいです ポップアップで別フォーム出さずに、全体を見渡しながら特定部分の訂正をさせたいんだけど
>>259 いじられたくないコントロールに編集ロックをかければいいんじゃないか?
262 :
259 :2008/03/26(水) 10:13:37
どうも有り難うございます あああ、そうなんですけど、、 表形式フォームで上下に移動しちゃって、関係ないレコード弄られちゃって、ってのも 対策したいんですけど
>>259 そういうのは桐にしとけ。
デフォで、そうなってる。
264 :
259 :2008/03/26(水) 10:37:21
>>263 Accessではむずかしいでしょうか?
フォーカス喪失時にキャンセル汁
266 :
259 :2008/03/26(水) 23:15:19
>>265 おお、ありがd
LostFocus には無いみたいだけど、Exit にはキャンセルパラメータありました
試してみます
でも、それでも >262 は無理っぽい気が・・・
予想屋のオレ様が次の質問を予想。 「訂正が終了するまでフォーカスを移動させなくするのはできました! でも訂正を中止したくて閉じるボタンをクリックしても閉じられないんですが」
268 :
259 :2008/03/26(水) 23:33:11
>>265 試しました
見事にデケました
どうも有り待とうございます
助かりました
>>267 それは、Escかホットキーで対応しようと思っています
まだ、試していません
・何をもって訂正の終了とするのか。 ・関係あるレコードと関係ないレコードとやらはどうやって見分けるのか。 このあたりの定義が全然わからんわ・・・
271 :
名無しさん@そうだ選挙にいこう :2008/03/27(木) 01:40:30
【 システム環境 . 】 Windows2000, Access2000 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 可 やりたいことは、開発ドキュメントが無い 昔にAccessで作成されたプログラムを ツールを使って解析することです。 テーブルやクエリ、フォームの一覧やその内容のレポーティングはもちろん、 テーブルやクエリがどのフォームやレポートで呼ばれているか、 または使われていない(フォームやレポートから呼ばれていない)かの特定、 さらにそれらの結果をグラフィカルに表示できるとベストです。 Access解析ツールは世にたくさんあると思いますが、 上記のようなことが出来るツール、ありますでしょうか? (フリーでも有料の製品でもかまいません)
>>271 HotDocumentかAαの試用版でも試してみろ。
>HotDocument あれは使えん
>>270 更新時のイベント
入力者自身
従業員に入力させてるんですけど、、
数日前の誤入力に気づいて訂正しようとすると、訂正時に関係ない所を弄っちゃって、
どこ弄ったか解らなくなって、データぐちゃぐちゃになってしまうのが困ってます
普段は訂正禁止にしておいて、表形式の狙ったセルだけ訂正できるようにしたかったです
>>274 編集したくないセルクリックしたら面倒そうだな・・・・
コマンドボタンの動作を、マクロとプロシージャを切り替えるのは、どうしたらよいですか?
自己解決しますた
ACCESS2007のその他のプリンタバグが解決されたそうだな。
279 :
名無しさん@そうだ選挙にいこう :2008/03/28(金) 21:19:02
2007になって、だいぶ桐に追いついて来たねage
プリンタバグって設定が元に戻るやつ?
これでデザインビューで開くたびにA4以外の設定がA4に戻る 通称A4地獄からようやく開放されるのか・・・ で、何を当てればいいの・・・?
>>278 おおおそんなクソ使用だったのか・・・
これからAccess2007に移行するところだったから、解決されていかったw
283 :
名無しさん@そうだ選挙にいこう :2008/03/30(日) 09:43:56
Access 2007 Runtime SP1 is now available
284 :
名無しさん@そうだ選挙にいこう :2008/03/30(日) 12:43:52
はじめまして、お世話になります。 サブフォームのあるフォームで、表示されているレコードをサブレコードごとコピーする 「コードの書き方」 を教えてください。 普通にレコードセレクタでレコードを選択してコピー → 新規レコードに移動してペーストでうまくできますが、 これをボタンに登録して処理をしたいと考えています。 コードでなくてもマクロでも結構ですので、何かよい方法をご存知でしたらご教示いただけますようよろしくお願いします。
>>284 追加クエリーは試した?抽出条件はWhere [キー]=Forms![メインフォーム]![キー]で
>>284 レコードセレクタはコードにもマクロにも乗らない
そういうのは、桐にしとけ
ACCESS2007のその他のプリンタを記憶しないやつは、 ACCESS2008まで修正されないと思うよ。
>>284 こういうこと思いつくやつが作ったテーブルには
えてして主キーが設定されていないもの
ふつうにコマンドボタンウィザードにあるだろうよ。 選ぶだけでアホでも作れるヤツが。
290 :
284 :2008/03/30(日) 21:29:57
皆さんレスいただき、本当にありがとうございました。
>>285 追加クエリーだとコピーの時点でメインテーブルのキーが重複してしまってエラーが表示されてしまいました。
作業としましては、メインフォームとサブフォームで現在表示されているレコードと同じ内容のレコードを複製して、
それに新たな製造番号を付して新規レコードを作成したいといった次第です。
>>286 そうなんですか・・・・。
EXCELの「マクロの記録」のようなものがあれば、簡単にコード化できると思ったのですが・・・・残念です。
>>288 メインフォームもサブフォームも「製造番号」をキーに関連付けしてリレーションも設定しているのですが、
うまく行きませんでして・・・・。
>>289 ありがとうございます。
コマンドウィザードボタン試させていただきました。
これならうまく行けると思ったのですが・・・・
どうもこれだとメインレコードだけしか複製を作ってくれないようです。
きっと何か良い方法があると思うので、この後もいろいろ試してみます。
もし何かよい方法がありましたら、引き続きご意見をいただければ幸いです。
よろしくお願いします。
2007ランタイムでステータスバーに触るとIEが立ち上がってMSのAccess宣伝ページが開く件について
>>290 追加クエリー発動の際、製造番号を別番号で追加してる?
293 :
名無しさん@そうだ選挙にいこう :2008/03/31(月) 08:26:31
Formのデータソースに選択クエリーじゃなくSQLを指定できねーの?
データソースじゃなくてレコードソースのことなら普通にできる
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 可・否 スレ違いだったらすいませんが、具体的な方法では無くてアクセスでこんな事が できるかな?ということを知りたいです。 もしできるのでしたら本格的にアクセスを勉強したいと思うのですが・・・・ 現在はエクセルでは独学ですが仕事でVBAを使っていますが アクセスは全く触った事がありません。 やりたいこと:製品原価の分析 4000〜5000位の部品からできている製品を一月2000台位(仕様としては約200種類)作っています。 データとしては一つ一つの部品に対して標準価格と実際にかかった費用を持っています。 1台1台の製品のそれぞれ一つ一つの部品をぶつけていき各々の差額をはじきだしておき その後に製品別・部品別の形のような様々な切り口で分析をしたいと思っています。 データはシステムから落ちてくるので拾うことは可能です。 エクセルでやろうとしましたが行数の関係でちょっと難しいかと思いまして・・・・ どうぞよろしくお願いします。
296 :
名無しさん@そうだ選挙にいこう :2008/04/01(火) 16:34:24
Today we released runtime builds for Arabic, Chinese (Simplified), Chinese (Traditional), Hebrew, Japanese, Korean, and Thai.
>>296 俺も今気づいた。
1年前に客先に入れた英語版のランタイムをやっと入れ替えれるよ。
JETだめじゃん、MySQLにしようかな
JETはカーソルが使えなーから、死ぬほど遅いっての VBAでRecordSet操作してたら日が暮れちゃうぞ
>>296 ようやく日本語版ランタイムが出ましたね
これでAccessの利用の幅が大きく広がりますね
>>274 どこをいじくったか
というのをわからなくなるのを防ぐのは結構大変ですし、あなたの言っているそれは、
Excelのセルの保護に該当するものだと思いますが、であるならば、Excelで入力させ
て、Accessで更新時にデータを取り込めばいいのでは?
取りこみ時に問題のExcelファイルのある場所を指定して、リンクテーブルを作成。
既存のテーブルとリンクテーブルとの差異を抽出。もしものときのために一定の期日
保存しておく。
または、入力時に入力日を自動で入れるように設定しておき、フォーム上で入力した
コントロールに条件付き書式設定で、1週間以内に入力したものは黄色にするとかを
入力日で判定させてみるとか。
とにかく、狙ったセルだけなんてのはExcelでも無理ですよ。セルの保護だってできる
のは指定した範囲のみ。日々業務が進んでいくのに、そのつどセルの保護設定なん
てしていられない。システムに人が合わせるようにしないとね。
それでも人間はミスをする。ならば修正した箇所は一定期間保存するために別テーブル
に一定期間保存しておくという最初のやり方をお勧めしますよ。
302 :
名無しさん@そうだ選挙にいこう :2008/04/08(火) 18:58:21
やっとAccessで出納帳作れた 累計残高作るの苦労したわ
どうやった? 連番IDを振って、DSUMでレコード自身以下のIDを持つレコードを合計するのが定番みたいだぬ
304 :
コルネ:302 :2008/04/08(火) 23:03:05
http://support.microsoft.com/kb/410756/ja これを改変して累計表示クエリー作って、それを元クエリと Self inner join して、さらに SQL UPDATE で書き込んだ
体感的に、DSUM の数百分の一の速度で出来たわ
俺GJ!!
MySQL だと、SQL UPDATE に order by 使えるから一瞬一発なんだが、Access その他の素直なSQLだとメンドイな
>>304 > 数百分の一の速度
日本語でオケ。
数百倍の速度だろ。
>>304 良くやった、感動した!
オマイ頭良いな。
すみません。超初心者です。 アクセス2000で昨日まで使用できていたものが今日使おうと開いたら 何もでなくなったのですが(アクセスのウィンドウが開くだけ・・・) これって破損して修復は不可能なのでしょうか 昨日終了時、終了ボタンを押しても反応しなかったので連打し閉じました。
壊れたときは"開くことが出来ません"うんたらかんたらのエラーメッセージが出ると思うけどな
何もメッセージが出ないなら、左下に最小化されてるとか
もしくは一度閉じて、Shiftを押しっぱなしで開いてみるとか。
>>304 やるじゃん。…俺には解らんけど
【 システム環境 . 】 WindowsXP SP2, Access2003 【 VBAが使えるか .】 可 【 VBAでの回答 】 可 【 検索キーワード 】 mda、同時、複数、モジュール サーバーにモジュールだけのmdaを置き、 複数のAccessのmdbから、参照設定でそのmdaのモジュールを使おうと考えています。 で、Aの端末でa.mdb、Bの端末でb.mdbを動かしても、大丈夫でしょうか? Accessは複数の同時アクセスは苦手とか聞いたもので心配しております。
>>309 Accessは複数の同時アクセスは苦手とか聞いた
データ書き換え時の排他ロックにおいて
Accessではレコードロックが実装されておらず
ページロックしか使えないことがその所以。
今回のようにモジュールを参照するだけであれば
データの書換えは発生しないはずなので大丈夫と思う。
うん。問題ない。 だいたいAccess標準で組み込まれているUTILITY.MDAからして、 ローカルオンリーとはいえ複数インスタンスから共有される仕組みだし。 ただXPだかVistaだか、ネットワーク共有で激遅くなるOS側の障害なかったっけ。
>>312 ネットワーク共有で激遅くなるOS側の障害
↑すまん、間違って書き込んだ。
XPのサービスでWebDAVクライアント機能が標準では有効になっている。
このため共有フォルダ参照の際、WebDAV→SMBの順に問い合わせを行う。
結果、ネットワーク上にIISサーバーが存在しない場合やフィルタリング
ソフトの設定によってはWebDAVへの問い合わせが失敗するまでの
タイムロスが生じることがある。
この辺が分かりやすい。
ttp://www.monyo.com/technical/windows/41.html
316 :
名無しさん@そうだ選挙にいこう :2008/04/10(木) 11:21:22
【 システム環境 . 】 Windows XP Pro SP2 access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 mdb 読み込み エクスポート 絞り込み ┌───┬────┬───┬──┬───┬────┬─────┐ │ 納期 ..│発注番号│商品名│個数│ 単価 ..│ 金額 .│ 出荷完了 │ ├───┼────┼───┼──┼───┼────┼─────┤ │080408│00000010│MoraV.│ .1│ \2,000│ \2,000│ [ ] .│ ├───┼────┼───┼──┼───┼────┼─────┤ │080328│00000021│GGiCo.│ .2│ \8,000│ \16,000│ [√] .│ ├───┼────┼───┼──┼───┼────┼─────┤ │080405│00000080│M2Mor.│ .12│ \4,000│ \48,000│ [ ] .│ ├───┼────┼───┼──┼───┼────┼─────┤ │080410│00000084│UnMor.│ .4│ \5,000│ \20,000│ [ ] .│ └───┴────┴───┴──┴───┴────┴─────┘ というmdbがありこれを出荷完了にチェックが入っているデータを除いた 金額の合計をテキストにエクスポート(この場合は "\70.000"というデータ一行のみ) したいのですが、何か方法はありますでしょうか?よろしくお願いいたします。
存在しないレコードをエクスポートしろとな
>>316 金額合計を集計する際のグループ化は不要なのか?
不要ならサマリ結果は常に1レコードになるわけで…
(1)集計選択クエリの結果をコピー&ペースト。
(2)集計テーブル作成クエリの結果を(ry
(3)マクロで作るなりVBAで作るなりお好きに
どのみち大した手間じゃない。
>>316 2007ならデータシートで合計すぐに出るでしょ
右クリック、コピー、メモ帳、ペースト
【 システム環境 . 】 WindowsXP SP2, Access2003 【 VBAが使えるか .】 ○ 【 VBAでの回答 】 ○ 【 検索キーワード 】 コード、ブラックボックス、プロテクト テーブルの中身や、モジュールのコードなど、 起動時に実行されるフォームからの作業以外をさせないよう、 プログラムでいうコンパイルされた形にしたいんですが、どういったやり方があるのでしょうか? パスワードやmda作成ではちょっと違うし。。。
テーブルは隠しファイルにし、MDEファイルで作成すればいいのでは?
1.テーブルはパスワードで暗号化 2.パスワードはモジュールのコード内へ 3.配布はMDEファイルにする これでいいと思う。
325 :
316 :2008/04/11(金) 17:38:35
>>318 すいません、VBAはあまり詳しくなくてどうすればいいのかさっぱりわかりませんorz
>>319 なるほど、手動ではできたので、マクロでやってみようと
「フィルタの実行」部分でフォームが見つからないといわれてしまいました…。
フォームってファイル名のことですよね?
「データベース構造の解析」を見てみる限りでは、
テーブル名しかなくフォーム名は空欄なのですが…。
>>320 ありがとうございます。
「フィルタ」機能と「シグマ」を使うことによって合計は出てきました。
しかしこれを自動化させたく、マクロをいじっているのですが、上記のエラーで…。
データベース(hoge.mdb)に含むことができるオブジェクトは テーブル,クエリ,フォーム,レポート,マクロ,モジュールの6種類。 ・仮テーブルを生成する[テーブル作成クエリ]を作る。 ・[テーブル]はテキストファイルへ[エクスポート]可能。 ・[マクロ]を作るのであれば //クエリを開く//(テーブル作成クエリ) //エクスポート//(仮テーブルから目的のテキストファイルへ) まずは基本を理解しる。
327 :
名無しさん@そうだ選挙にいこう :2008/04/11(金) 21:39:10
桐とアクセすの違いについて調べています。(職場にどちらともあるので、どっちを使うかで迷ってる) 桐は、エクセルみたいな感じで直感的に使える感じが私はしました。 たとえばある列から、ある言葉を検索したければ、その列を列毎選択して「検索」するだけ。 同様に絞り込みも楽でした。 一度しぼりこんだものを、さらに絞り込むのも簡単でした。 ところがAccessは、なかなか検索とか絞込みがうまく出来ず…クエリと言う概念がいまいち 理解できません。 複雑なDBは作りませんし、単に業務の効率化のために使うので楽に使える方がいいのですが 自分のPCにはAccess、共用PCに桐がインストールされているため、できればAccessを使って いきたいのですが、Accessではやはり「クエリ」という概念を理解しなくては使いこなせないでしょうか。 私みたいなDBが何ぞやも分かってない人間には、桐が無難ですか?
>>327 両方持っていて、しかも桐のほうが使いやすいというのであれば
迷う必要はない。
大抵の人は、Accessを使わざるを得ないから使っているだけ。
やりたいことが実現でき、かつ、利用者も問題ないのであれば
製作者が使いやすい道具を使えばいい。
330 :
名無しさん@そうだ選挙にいこう :2008/04/11(金) 21:49:32
レスありがとう。 既に桐は職場のPCに1つだけインストールされてるんです。 一方、アクセスはどのパソコンにもインストールされてるんです。 なので、多分「自分のPCにも桐を入れたいから買って」といっても 「Access入ってるから駄目」と言われるのがオチなんです。 共用PCでの作業なので、多少の不便はあるけど、Accessはやはり難しいですかね。 使いこなせればすごいんでしょうけど、覚えながらやるような時間はないですし。
AccessはWinnyで無料だけど、桐は高いど でも普通は、Accessは台数分買うけど、桐はアクチベーションないから1つあれば (ry
いやいや、PCへのインストールは情報管理部局しか出来ません。 シリアルは管理されてるので、複数台にインストールは出来ないんです。 それはさておき、やっぱりド素人には桐みたいですね。 Accessでデータの抽出って、なぜあんなに難しいんでしょう? それとも本当は簡単にできるのかな? たとえば、「案件名」から「○○」の言葉の入ってる行だけ抜き出す場合、桐だと「絞込み」という ボタンを押して操作するだけです。 絞り込んだものからさらに「▲▲」を絞り込む場合も、同様の作業を繰り返すだけ。 Accessでも同じようにできます?それともクエリの概念が理解できてナイト駄目? 私のやり方がまずいだけで本当は簡単にそんなことできるんだよ、ってことだったら Accessをもう少しいじってみたいのですが。
比較対照があると大変だね。 Accessしか知らないのなら割り切れるんだろうけど。 327氏は選択肢があるようなことを言っていてその実 Accessしか選択肢がないのだから 必要であれば覚えるしかないだろう。 Accessのいいところは、本にしろネット上にしろ 参考にできるところがたくさんあることかな。
で、どこまでが自演?
>>332 Access2007ならかなり、絞り込み(フィルタ)簡単になったよ
でも、2段階以上重ねては出来ない
概略
桐は、現在見えてるデータを操作する
Accessは、大元のデータ(デーエタソース)を操作する
336 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 00:07:27
dateadd関数の使い方を教えてください。 [受付日]に日付を入れたら、自動的に[期限]に30日後の日付を入れたいのですがうまくいきません。 今やってることは、 [期限]のプロパティ欄の「入力規則」とか「フォーカス移動時」とかのあらゆる箇所に =DateAdd("d",30,[受付日])と入れてますが、どこに入れても全く値を入れてくれません。 何か根本的に、間違ってるんでしょうか・・・
>>336 受付日が日付型なら、期限のコントロールソースに
=[受付日]+30
でOK。
338 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 00:51:35
ありがとう! でも、そうしたら、テーブルの一覧の中にデータが入らなくなりました。。。 フォーム上では期限が出てますが、テーブルには入ってません。 コントロールソースには、テーブルのどこに入れたいかを記載しなくて良いのでしょうか?
339 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 00:58:00
コントロールを宛先のフィールド名にして、既定値を「=[受付日]+30」にすれば?
340 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 00:59:41
間違えた。[受付日]コントロール・フォーカス移動時にMe![期限]=[受付日]+30 でいけるはず
341 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 01:00:47
規定値を=[受付日]+30でやってみましたが、今度は常に同じ日にちとなり、 新規レコード追加で受付日を新しく入れても、期限が更新されませんでした。
テーブルに受付日があり、期限は必ず受付日+30日というルールであれば 期限のフィールドはそもそも最初から持つ必要がない。 これが理解できないと先々苦労することになるよ・・・
343 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 01:06:38
340さんのでやってみると、エラーが出てしまいました。 このオブジェクトにはMeは含まれません らしいのですが。。。さっぱり理解が。。。
[期限]のフォーカス取得後→コードビルダ
------------
Private Sub 期限_GotFocus()
If IsDate([受付日].Value) Then
[期限].Value = DateAdd("d",30,[受付日].Value)
End If
End Sub
------------
ただし
>>342 の言うことは至極もっとも。
期限を表示するだけなら
>>337 の方法が使えるからね。
345 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 01:08:50
イベントプロシージャで、=は削除してMe!期限 = [受付日] + 30としたら 出来ました!ありがとう! 342さん、なぜですか? エクセル感覚で使ってたら、さっぱり理解が・・・私には敷居が高すぎかもしれませんね。
346 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 01:10:15
期限を表示するだけというか、あとから「ある期限までの一覧」とかを 取り出したいのですが、それでも『期限フィールド』は不要でしょうか?
「ある期限までの一覧」と「ある受付日までの一覧」
同じことだと思わないか?w
349 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 01:15:02
つまり、 [期限]=[受付日]+30 と言うことは、受付日だけあれば期限は自動で定まる・・・ってことですか? [受付日]フィールド [受付日]フィールド+30 ←これが期限 だから、[期限]フィールドは不要てことかな??
その通り。
351 :
336 :2008/04/12(土) 21:46:50
何となく理解してきました。 私がやりたいのは、以下の通りです。 ・受付日の30日後を期限として、対応を終わらせないといけない ・対応の決定には、決裁が必要 ・期限までに決裁が終わっていない部署には、催促をかける必要がある ここで、フィールドを[受付日][事案名][担当課][決裁(yes/no型)]としました。 クエリをつかって、 [受付日][事案名][担当課][決裁(yes/no型)][期限:[受付日]+30]とし、期限の抽出条件に 「<=[いつまでの期限?]」と入れました。 そうして、パラメータにたとえば「5/31」と入れると、期限が5/31までのものが出ますよね。 ここで1つ行き詰りました。 期限までにすでに決裁がyesであれば問題ないので、さらに[決裁]の抽出条件として 「チェックがついてないもの」としたいのですが、これをどう記載したらいいかわかりません。 手持ちの参考書になくて、ネットで見ても分からず。。。 何度も恐縮ですがよければ教えてくださいませ。
352 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 22:09:20
すみません、自己解決しました。 yesだと-1で、noだと0が入ってるんですね。これで抽出できました。
>>351 ちなみに、期限設定(受付日の30日後)は暦日でカウントですか?
営業日でカウントだとちょっと複雑になると思います。
まぁできたのであらばいいが、あんまりマジックナンバーは使用しないほうがいい。 yes/no型フィールドの規定値をFALSEにして、 チェックが付いているものはTRUEにするのが プログラミングの基礎。 なぜかって言うと、仕様変更により-1、0じゃなくなる可能性もあるから。 もっとも、今回の場合は決済日(規定値として受付日+30日。変更可)を 持ってもいいかもしれない。 その辺はどのようなデータが必要かによるけどね。
355 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 23:27:45
期限設定は、単純に30日後にしました。 その日がもし休日なら、その次の平日が期限となるだけなので、それくらいはカレンダーを見れば 分かるかな、と。 解説書を見ながら、ちょっとずつクエリと言うのが分かってきました。 といっても、わたしのやりたいことは、非常に単純なので、テーブルも基本1つです。 (参照用のテーブルならいくつかありますけど)
356 :
名無しさん@そうだ選挙にいこう :2008/04/12(土) 23:30:39
>>354 さん
0,-1はあまり使わない方がいいですか?
抽出条件を「yes」とするのも、同じ?
yes/noフィールドの規定値は変更できるんでしょうか。できるとすれば、そこを
FALSEとTRUEに変えればよいですか?
すでにデータが入っている状態でフィールドを増やしたのなら Nullになっているかも。 これからデータを入れていくのなら規定値にFALSEと入れておけばいい。 こうしておけばSQL(クエリ)でもVBAでも使える。 どうせ、そのうち全てのチェックをはずしたいとか要求が出てくるだろうから 今のうち対処しておいてもいいと思うよ。
厳密に言えば違うのだが、FALSEは0、Trueは-1のことだと思っていればいい。 ただそんだけの話。 その辺はAcceeのヘルプで「定数」を調べればいい。
359 :
名無しさん@そうだ選挙にいこう :2008/04/13(日) 00:03:15
Yes/No型で、書式で「True/False」を選べたので、変えて見ました。 そしたら、クエリがうまく行かなくなりました。 実は、期限を延長することも可能で、延長した場合はさらに30日伸ばせます。 テーブルに、1つ「延長」(Yes/No型)フィールドを追加し、 クエリに 延長後の期限: IIf([延長]=yes,[受付日]+60) としてて、うまくいったのですが、ここを延長後の期限: IIf([延長]=True,[受付日]+60) とすると抽出しなくなりました。これは、駄目ですか?
>>359 いまさらだがVerは?
特に問題ないようだが。
>>359 True→真
False→偽
まずIIF関数の使い方が間違っている。
IIF(条件式,値A,値B)
条件式の評価が「真の場合は値A」「偽の場合は値B」を返す。
以上を踏まえて選択クエリに次のフィールドを追加する。
期限: IIF([延長]=True,[受付日]+60,[受付日]+30)
[延長]=Trueという条件が
真(True)なら60日後が期限となる。
偽(False)なら30日後が期限となる。
さらに上記のIIF関数を
期限: IIF([延長],[受付日]+60,[受付日]+30)
のように書き換えても同様に動作することが分かる。
なぜ同様に動作するのかを考えると
True/Falseへの理解が多少は深まると思う。
>>359 yesの部分を0にすればいいんじゃね?
noなら-1くぉ
「=yes」も「=True」も通りそうな気がするが、その辺がダメっていうなら、 [延長]フィールド自体Yes/No型なんだから、[延長]だけで「=True」とか 付けなきゃいいんじゃね?
364 :
名無しさん@そうだ選挙にいこう :2008/04/13(日) 11:05:32
だから桐にしとけと、、
365 :
じゃまなボタン :2008/04/13(日) 11:25:21
もし可能であれば教えてください。 職場のACCESSが今月から2007に変わったのですが、テーブルを開いた時に表示される フィールド名右側の並べ替え(▼ドロップダウン)ボタンが邪魔でしょうがありません。 公式HPをみると、フィルタや並べ替え強化が2007の新機能で売り、らしいですが 使う必要の無いテーブルには無意味なので、非表示にしようと検索したのですが その方法がみつかりません。 あの並べ替えボタンは表示/非表示の切替はできないのでしょうか。 今回の強化機能なのでオン表示のみ、というならあきらめますが、 もし非表示にできるなら、方法を知っている方、お教え下さい。 よろしくお願いいたします。
まあ生き残れるのは変化に対応できるやつだからそのままガマンして受け入れてるけど 確かにあれはジャマだなw
>>365 うん、ランタイム環境で、その▼で並べ替えを実行しちゃうとデフォでは戻す方法がないんだ
並べ替えをクリアのリボンコマンドがランタイムでは表示されないから
俺も無効にしたい
>>364 人が真面目に相談し、相談に乗っている中で、おまえのような話の腰を折る
馬鹿が使うDBが桐なのか?
消えろよ
あと、分割フォームで単票フォーム部分とデータシート部分を行き来するショートカットキーとか なんかありませんか?
FileMakerにしとけ
371 :
じゃまなボタン :2008/04/13(日) 14:47:32
366さん、367さん、ご返答ありがとうございました。 現状では非表示にすることは無理、ということですね・・・ 仕方ないので、そのまま使うことにします。 オフィス2007のAPはリボンメニューに変わってすごく操作しづらい、 と思うんですが、私だけなんでしょうか? 2000から使用し始め、ある程度操作慣れしている自分には客観的にわからないのですが あれは本当に初心者にわかりやすいメニュー構成なんでしょうか? 以前のメニューバーやツールバー形式の方が、シンプルで使いやすかった気がするのですが・・・ ・・・質問ではなく、愚痴になってすみませんでした(´・ω・`)
KeyPress(KeyAscii As Integer) Enterキーをトラップしたい時には、KeyAscii に何を指定すれば良いの?
13
375 :
ナオ :2008/04/19(土) 09:39:04
学校のPCに入ってるACCESSをUSBメモリにコ〇ーして家のPCに入れる事はできますか? もし入れる事ができるならやり方を教えてください。
その時々のActiveContorolのプロパティを変更するにはどうしたら良いの?
379 :
377 :2008/04/20(日) 14:21:42
focus
380 :
377 :2008/04/20(日) 14:25:43
enterイベントで、その時点でfocusを持ったテキストボックスのプロパティを変更したいんですけど、 Apllication.screen.activecontrolで該当コントロールを特定できるのは解りましたが、その後にどうしたら良いですか?
プロパティを変更してみては?
382 :
377 :2008/04/20(日) 17:30:06
全部のテキストボックスで同様の操作して、後ほど別のイベントで元に戻したいんですけど 全部のテキストボックスのenterイベントに、全部のテキストボックスのプロパティ変更を記載すればできますが、、 必要なのは、その時点のActiveContorolのプロパティ変更だけで、、 全部のテキストボックスのenterイベントに記載するのは、仕方ないとして、 せめて、"Apllication.screen.activecontrol" & ".プロパティ" の様な記載で、当該アクティブコントロールのプロパティを指定変更できますか?
383 :
名無しさん@そうだ選挙にいこう :2008/04/20(日) 20:53:40
>>382 桐にしとけ。
桐なら、ファミリってのがあって、コントロールをファミリにまとめて操作できるど。
文字列じゃないんだから、括らなきゃいいだろ。
えええええーーーーーーーーーっと Apllication.Screen.ActiveControl.BackColor = RGB(&H84, &HA1, &HC6) とか出来るのかあ? 無理だろ
例えば入力用フォームでマウスホイールが回ってしまっても 前後のレコードに移動しないようにするにはどうしたらいいですか?
387 :
386 :2008/04/20(日) 22:32:42
自己解決しました スレ汚しスマソ
388 :
名無しさん@そうだ選挙にいこう :2008/04/20(日) 23:37:21
>>387 そうやって、解決した内容を書かずに消える君のような カス がいるから、ここでは
君のような、自分では調べもせずになんでも、人に聞いて楽しようとする馬鹿には答え
ないのだよ。
少しは礼節というものを知ったらどうかね?
390 :
名無しさん@そうだ選挙にいこう :2008/04/21(月) 00:17:38
まあ386≠387の可能性も否定できないが
【 システム環境 . 】 WindowsXP SP2 Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 追加 ログ 追記 エクスポート accessで以前エクスポートしたファイルに更にエクスポートすると上書きされてしまい、 以前のデータが消えてしまいますよね。 これをログみたいにどんどん追加していきたいのですが、そのようなことって どうしたらできますでしょうか?よろしくお願いいたします。
392 :
名無しさん@そうだ選挙にいこう :2008/04/21(月) 08:27:10
たまご酒 ◆vkjheMXAW2 って色々なスレでオバカ丸出しの書きこしてるのな。
>>385 >えええええーーーーーーーーーっと
>Apllication.Screen.ActiveControl.BackColor = RGB(&H84, &HA1, &HC6) とか出来るのかあ?
>無理だろ
もちろん無理だ。
Apllicationなんてないから。
Applicationならあるけどな。
394 :
名無しさん@そうだ選挙にいこう :2008/04/22(火) 08:22:57
>>393 Application.Screen.ActiveControl.BackColor = RGB(&H84, &HA1, &HC6) なら出来んの?
出来る。
>>391 出来ないと思うよ
ちなみに、どうしてもやりたかったら桐にしとけ、標準で可能だよ
>>391 っていうか、エクスポートじゃなくて、追記という形でどんどんやればいいんじゃね?
Excelのオートメーションを利用するとか。
単純に、mdbもう一個用意してリンクテーブル、で、そこへInsert into * テーブル名で
次々に足しこんでいく。
そのもう一個のほうには、必要なものだけ、期間指定でもしてExcelで出せるようにして
おく。俺だったらこれでやる。
もうひとつは、おおもとのcsvデータを用意し、csv出力後、その大元のcsvと結合させる
VBAのコードを書く。これでいけると思いますよ。
>>397 こんなんでやっとけ。
Currentdb.Execute "INSERT INTO [C:\Hoge\先DB.accdb].[先テーブル] SELECT * FROM 元テーブル"
ヘルプの、"Enabled/使用可能" プロパティの説明、2007になっても可笑しいままだね
400 :
名無しさん@そうだ選挙にいこう :2008/04/23(水) 12:51:35
>>391 エクスポート元のテーブルに全部のデータを残しとけば?
(てか、エクスポート先は何だ?「ファイル」ってくらいだからAccessではないと思うが、Accessなら…)
401 :
名無しさん@そうだ選挙にいこう :2008/04/23(水) 13:17:05
組み込まれているAccess 2007 開発者用リファレンス 時々MSのサーバがサボってて繋がらないんだが、 どこかMSDNとかで見れるとこない? あと、PDFにしとく方法とか?
タブを切り替えたときのイベントってどこに割り当てればいいですか?
タブに重ねてボタンを作って、on clic
406 :
名無しさん@そうだ選挙にいこう :2008/04/28(月) 13:13:46
キーボードイベントで全角スペースをフックするには、どうすれば良いですか? 自動的にIMEオン設定のコントロールでスペースキーフックしたいんですけど。
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 ページフッター 余白or空白 削除 現在レポートを出力する際に困っている点があります。 ページフッターの余白の部分を詳細(データ)に使いたいと思っています。 --1ページ目-- レポートヘッダ ページヘッダ 詳細 詳細 ページフッタ --2ページ目以降-- ページヘッダ 詳細 詳細 詳細 詳細
ページフッターFormatのCancel引数に-1を入れて、ページフッターの Heightを調節しても、表示はされないものの詳細部がページの下まで 出てくれないのです。 IF Me.Page = 1 THEN Me.ページフッター.Visible = True ELSE Me.ページフッター.Visible = False END IF 以上のような条件をページヘッダーで制御してもうまく出力して くれません。 1ページのみページフッターを出力、そのほかのページは ページヘッダー及び詳細のみのページ構成にしたい場合どのような やり方がありますでしょうか?ご教授願いします。
409 :
名無しさん@そうだ選挙にいこう :2008/04/28(月) 19:42:30
Access2007で、既定のコントロール スタイルってどこで設定するの? つーか、既定のコントロール スタイル は無くなった?
アクセスで簡単な管理DBを作成し、共有サーバにファイルを置き、 また専用フォームを開くためのアイコンを用意しました。 他の人のデスクトップにショートカットを作成したいのですが、 専用アイコンで立ち上げようとした場合、 アイコンの設定は自分が設定してあげるしかないでしょうか? (アクセスアイコンのショートカットになってしまう。)
>>410 うーむ
というか、共有サーバにおいて開かせるとあとあと問題になるから、やめておいたほうが。
それと、iconの設定が絶対パスになっているから、設定してあげないといかんと思う。
ちなみに、iconの設定はVBAで
CurrentDb.Properties("AppIcon") = CurrentProject.path & "\owata.ico"
ってな具合に設定すると由。
できれば、共有したいのならば、MySQLでもつかって、サーバを立てて、そこにテーブルを
つくり、それをリンクテーブルで今共有しているmdbのファイルの中のテーブルを置き換えた
らいいと思われます。ODBCはMyODBCをつかって、登録してからじゃないとリンクテーブル
が作れないです。
テーブルそのものは、MySQL Migration toolkitを使うとそっくりそのまま、mdbからMySQLへ
テーブルを移植できますよ。
412 :
名無しさん@そうだ選挙にいこう :2008/04/28(月) 22:49:45
相談です。お願いいたします。 【OS】XP 【Ver】Access2002 【やりたいこと】 ・請求者一覧テーブルとそれに対応した請求者一覧フォームがある ・請求者一覧テーブルのフィールドは 管理番号(数値)、請求者氏名、連絡先、案件、・・・、処理終了日 など たくさんあるデータの中で、「管理番号」で検索をかけたい。 具体的には、請求者一覧フォームのヘッダ部分にテキストボックス(管理番号検索)を配置し、そこに番号を入れて コマンドボタンで抽出をするということをしたい。 ただし、テキストボックスが空だったら「番号を入力してください」というエラーメッセージを返す。 【やってみたこと】 1.マクロ 条件 [Forms]![請求者一覧]![管理番号検索] Is Null → アクション「メッセージボックス」 → マクロの中止 → フィルタの実行([管理番号]=[Forms]![請求者一覧]![管理番号検索]) ★結果はメッセージボックスは出るけど、抽出は作動しない ★「マクロの中止」行を削除すると、抽出は作動するがテキストボックスが空でも、エラーメッセージを返したあと そのまま抽出を行う(当然、ヒットしないがフィルタはかかってる) 続きます
413 :
412 :2008/04/28(月) 22:52:31
2.コードのビルド Private Sub コマンド385_Click() On Error GoTo Err_コマンド385_Click If IsNull([Forms]![請求者一覧]![管理番号検索]) Then Beep MsgBox "管理番号を入力してください", vbExclamation, "" Else DoCmd.ApplyFilter "", "[管理番号]=[Forms]![請求者一覧]![管理番号検索]" End If Exit_コマンド385_Click: Exit Sub Err_コマンド385_Click: MsgBox Err.Description Resume Exit_コマンド385_Click End Sub 【結果】 抽出はするけど、エラーメッセージは返らない。 マクロのときと同様、テキストボックスが空でもフィルタがかかる 色々やっても分からなく、何時間も調べたり試したりです。 どなたか、アドバイスお願いします。 超がつく初心者なので、そもそもが的外れなことをやってたらごめんなさい。
414 :
410 :2008/04/28(月) 23:11:47
>>411 アドバイスありがとうございます。
直接触らせるのはやっぱ良くないですよね。
いろいろ参考になりました。
>>410 データの整合性、もろもろを考えると、
>>411 が言うように
きちんとDBサーバーを立ち上げるのが正解。
DBエンジンはお好みで。
ただし複数ユーザーの同時使用の可能性が低いのであれば
ファイルサーバーに配置して共有するのもアリだと思う。
いずれの場合も各ユーザーはリンクテーブルを通して
DBの操作をさせるようにするのが原則です。
MySQL・ポスグレ・オラクル等にODBCリンクテーブル貼って開発するケースと SQL-Server(Express)に.adpでテーブル直リンクで開発するケース。 両方経験したことがあるのならDBエンジンお好みでとはとても言えない・・・
>>412 If IsNull([Forms]![請求者一覧]![管理番号検索]) Then を
If Nz([Forms]![請求者一覧]![管理番号検索],"") = "" Then で。
>>416 あまり踏み込むとスレ違いになるなw
418 :
407 :2008/04/29(火) 11:03:21
ページフッターの余白に詳細を載せることは不可なんですか?
メイン・サブフォームでサブフォームのキークリック時イベントを使いたいのですが、 メインフォームとサブフォームのどちらに設定するのが普通ですか?
420 :
名無しさん@そうだ選挙にいこう :2008/04/29(火) 12:57:45
バグ大杉。
421 :
名無しさん@そうだ選挙にいこう :2008/04/29(火) 20:59:08
テキストどおりにテーブルを作って EXCELのデータをインポートしても、出来ないw しかも、列幅打ち込んでも、勝手な数字に変換されちゃうし。 逆にエクセルのデータをインポートして 修正を加えようと思ったら、指示されていたテーブルと全然違うから 今度はクエリが組めないw こんなんじゃVBAまでいけないわ。
>>421 桐にした方が良いよ
簡単確実高性能、高いけどね
>>421 そんな君には、FileMakerがピッタリさ
簡単確実高性能で、どこかの和製DBと違って、メジャーだし、資料もサンプルも
豊富だよ。
425 :
名無しさん@そうだ選挙にいこう :2008/04/29(火) 21:33:07
426 :
名無しさん@そうだ選挙にいこう :2008/04/29(火) 21:37:06
FileMakerってサブフォームとかイベントとか出来るの?
出来ない。 ファイルメーカーのリレーションも実は只のルックアップ。
フォーム画面でフィルタ検索して表示された契約を、 ボタンクリックでフォームから単票にてレポート出力するには、 どうしたらよいでしょうか? フィルタ検索された契約が複数表示されてしまいます。 市販の参考書にも調べた限りでは載っていないようでした。
429 :
名無しさん@そうだ選挙にいこう :2008/04/30(水) 21:54:39
契約番号等のユニークキーで抽出してやれば?
430 :
428 :2008/04/30(水) 21:58:48
>>429 あいまい検索でヒットした契約から選択するのがベースなので、
複数結果をもつのが通常なのです。
フォームに単票表示しているものを印刷するだけだから
簡単そうなのですが、難しいですね。
431 :
名無しさん@そうだ選挙にいこう :2008/04/30(水) 22:27:16
複票フォームでもキーは存在するでしょ?フォームからレポートを開くとき・・・ Docmd.OpenReport "レポート名" , , , "[キー1]='" & Me!キー1 & "' And [キー2]= '" & Me!キー2 & "'"…
複数結果をもつのが通常ってきみ、 それをレコードソースにしたならレポートが複数になるのも通常でしょ…
433 :
421 :2008/05/01(木) 01:01:38
434 :
421 :2008/05/01(木) 01:05:26
>>422 事務系OLなので、諦めるわけにはいかないのです・・・
>>423 MOUSの資格をすべて揃えたいので、ACCESSが最後の一個なんです…
>>424 Filemakerですか、オプションの一つに考えます、
でも目下はACCESSなので・・・
>>425 各ファイルの拡張子をうpですか?
C:〜書き始めるということなんでしょうか。
バカで本当にすみません。
>>434 はっきりいって、おまえが何をやっているのか、何ができないのか、さっぱり不明です。
バカでも分かるように説明しなさい。
436 :
名無しさん@そうだ選挙にいこう :2008/05/01(木) 01:24:00
435 はい。すみませんmm ACCESS2003のマスター教科書を買って独学でやってます。 これは、購入した教科書が指定するHPから、必要なデータを自分で ダウンロードし、各章にあわせて、ダウンロードしたデータを使いながら 進めていくものです。 いま現在、メイン/サブフォームの作成を行っておりまして、 その中で、指定した「見積書」をテーブルで作成し、 そこにダウンロードしたファイルの中から、指定のexcelデータを インポートするという、初歩的なことをやっています。 そこで、教科書どおりにテーブルを作り、ダウンロードしたEXCELファイルを インポートしても、エラーが発生して出来ない。 ではEXCELファイルを新規のテーブルとしてインポートし修正を加えようと するとさらにできない。
437 :
名無しさん@そうだ選挙にいこう :2008/05/01(木) 01:29:37
>>436 の続き
さらに、テーブルをつくったあと、
その中の一つのフィールドにルックアップ設定を手動で行うということになり
その指定が
表示コントロール:コンボボックス
値集合タイプ:テーブル/クエリ
連結列:1 ・・・
と続くのですが、
その中に
列幅:1.822cm;2.545cm;0cm;0cm
リスト幅:9.443cm
という指定があるのですが、
列幅に2.545cmと打ち込むと自動で2.547cmと変換されてしまい、
リスト幅も9.444cmと変換されてしまいます。
結局テキストどおりの指定のテーブルになっていないので、
インポートできないのかもしれません。
そんなら試しに2.544cmて打ってみ。 つかそんなコンマ01_単位の違いで深刻なエラーとか発生しないからw
>>436 Accessは教科書的なやり方だと、間違いなく挫折するよ。
むしろ、下手に最後にもってきてしまったのが痛い。他のアプリとは趣もなにもかも
違う。極めてデベロッパーな性格のソフトウェアだからね。
よって、ナニがしたいのか?どうしたら実現できるのか?こういう機能は乗せられない
のか?といった能動的な動きをしないと、そのひとつひとつは身に付かない。だいたい、
クエリをテーブルとして利用するみたいな基本とかが、あまり身に付いているように思え
ない。
Accessの肝はVBAにあらず。VBAはあくまで発展した用途の世界だ。VBAを使わずに
ある機能のみでつきつめるだけの努力がないと、資格もむずかしいと思われる。
>>436 少なくとも、‘どのように’できないのか?くらいは具体的に教えれ。
エラーメッセージが出るのか、操作が分からないのか、結果がおかしいのか
アドバイスのしようが無いw
おまいらOLには優しいのうwww
実は40過ぎのオバハンだったり
つか、MOUSなんかいらなくね?
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 【 検索キーワード 】 Excel2.0 開く Access2003 65000件を超えるExcelデータが、Excel2003じゃ65000件制限で切れてしまうのでAccessで開きたいんですが、Excelデータの方のバージョンが古すぎて(Excel2.0)開けません。 Access2.0を使えば開けるみたいなんで、試みてみたんですが、Access2.0自体がまともに動いてくれないので完全にお手上げ状態です。 Officeのバージョンを上げればExcelでも開ける様なんですが、今のところその予定はありません。 Excel2.0のデータをAccsess2003で開くのに、何かいい方法ってありますか?
EXCELをCSVでエクスポートさせればOK
>>444 ACCESSでインポートできないん?
メニューバーでファイル→外部データの取り込み→インポートで 65000件を超えるEXCELデータファイルを指定。
>>444 >>445 の言うcsvか、ヘルプ書いてにあるように
Lotus1-2-3形式に変換してからインポート
お前らマジで頭悪いな
449 :
名無しさん@そうだ選挙にいこう :2008/05/02(金) 18:37:08
WIN2K ACC2K 文字列を一文字づつ変数strに格納して次の処理するんだけども A(丸囲み2)とかV(ローマ数字3)も処理されてまうのはACCの仕様? えくせる子で同じコード書いたらちゃんと弾くのだが なんでさ? if (str > 0) and (9 > str) then 処理 end if 例外処理組み込むとかASCIIで指定するとか方法はあるんけど、理由がわからんの
Option Compare Database
>>450 変数名にstrとか使うな
文字列と数値を直接比較すんな
変数の型宣言しろ
あとExcelでは弾くってどういう意味?
>>450 こんな無茶なコードでもExcelだと動くのか・・・ヘェー
>>451 も言ってるが、Option Compareを宣言しないとBinaryモードで比較するから
そのあたりが関係してると思うが・・・
>>452 の言うことが正論だな。
Option Explicitも宣言する癖を付けた方がいいぞ。
なるほどありがとう 今度試してみる
access2000なのですが、教本に載ってる下記のファイルインポートコードがエラーになってしまいます。 2000ではどのように修正すれば、機能するでしょうか? Private Sub cmbImport_Click() Dim objFileDialog As FileDialog Dim objItem As Object Dim lngCount As Long Dim i As Long lngCount = 0 Set objFileDialog = Application.FileDialog(msoFileDialogOpen) With objFileDialog .Filters.Clear .Filters.Add "Excel ワークブック", "*.xls" .AllowMultiSelect = True .ButtonName = "インポート" .Show If .SelectedItems.Count = 0 Then Exit Sub End If End With Me.Repaint DoCmd.Hourglass True For i = 1 To objFileDialog.SelectedItems.Count Call sImport(objFileDialog.SelectedItems.Item(i)) lngCount = lngCount + 1 Next DoCmd.Hourglass False MsgBox lngCount & "個のファイルをインポートしました" _ , vbOKOnly + vbInformation, "処理結果" End Sub
Application.FileDialogって2000で使えたっけか?
FileDialogは2002からの機能だったはず。 Excelのライブラリ使ったりする方法もあるが、 APIでやるのが普通っしょ。
459 :
455 :2008/05/05(月) 22:42:48
エラー内容;メソッドまたはデータメンバが見つかりません。 →.FileDialogが問題のようです。 既存のロジック丸パクリで実装できると思ったのですが、 どこかに2000で流用できるものがないでしょうかね?
>>459 私初心者ですが、私ならファイル選択+APIでぐぐります
461 :
455 :2008/05/06(火) 07:09:20
>>460 やさしいヒントをありがとうございます!
いろいろ出てきてくわかりそうです。
複数のテキストをボタン1つクリックでnullにしたいです 知恵を貸してください
>>462 知恵も何も、更新クエリを使えばいいだろ。
464 :
名無しさん@そうだ選挙にいこう :2008/05/06(火) 21:34:07
これでいいんじゃない? Private Sub Command_Click() Me.text1 = Null Me.text2 = Null Me.text3 = Null End Sub
テキストってテキストボックスのことか。 非連結FormだったらFor〜Each〜NextでControlを総当たりするのだが。
「複数」とは書かれているが、全てではないだろう。
ここで「桐にしとけ」っていうのは冗談で言ってるのかと 思ってたけど、マジで言ってるやつが居そうだな。 桐にしとけってマジで言うなら、桐スレのURL貼って誘導しろよ。
469 :
名無しさん@そうだ選挙にいこう :2008/05/08(木) 20:54:33
すみませんが教えてください。 あるテーブルの番号というフィールドに入力すると 別のテーブルにあるその番号に応じたデータが表示されるよう クエリ、フォームを作成しました。 番号フィールドは両テーブルとも主キーです。 ですが入力しても、直ぐには表示されず、一旦フォームを閉じ開かないと表示されません。 なにが間違ってるか教えてください。
更新後処理にMe.Requeryとでも入れとけ。
471 :
名無しさん@そうだ選挙にいこう :2008/05/08(木) 22:52:23
【OS】XP 【バージョン】2003 【やりたいこと】 パラメータクエリの作成 ある端末の使用状況を、店舗ごとに集計するクエリを作っています。 下記の2つのテーブルがあり T_端末使用状況 ・日付(日付/時刻型)・・・日付と時刻が入る ・判定(テキスト型)・・・時刻によって「0」か「1」が入る ・端末名(テキスト型) T_コード ・支店名(テキスト型) ・端末名(テキスト型) これを基に下記のようなクエリを作りました。 (改行エラーが出るので一旦きります)
472 :
名無しさん@そうだ選挙にいこう :2008/05/08(木) 22:52:55
Q_1(選択クエリ) ・日:Int([日付]) ・時間:[日付]-Int([日付]) ・判定/T_端末使用 ・支店名/T_コード ・端末名/T_コード Q_2(クロス集計クエリ) ・日/Q_1/グループ化/行見出し ・支店名/Q_1/グループ化/行見出し ・判定/Q_1/グループ化/列見出し ・端末名のカウント: 端末名/Q_1/カウント/値 ・合計:端末名/Q_1/カウント/値 Q_3(選択クエリ) 日/Q_2 支店名/Q_2/Like [営業店] 合計/Q_2 0/Q_2 1/Q_2 このQ_3を実行すると、「'[営業店]'を有効なフィールド名、または式として認識できません。」というエラーメッセージが出てしまいます。 支店を指定して実行させる方法を教えてください。
>>472 クエリ→パラメータで営業店のデータ型を指定していないような気がする。
474 :
471 :2008/05/08(木) 23:56:10
475 :
469 :2008/05/09(金) 07:26:31
>470 やっぱり再クエリさせるしかないのですか。 両テーブルのフィールドが同じデータで主キーだと 直ぐに表示されないという仕様なのですね。なぜなのでしょう。
476 :
名無しさん@そうだ選挙にいこう :2008/05/09(金) 07:47:42
画面(フォーム)の更新くらいに思っておけばOK
>>452 なんで変数名にstrってつけちゃいけないの?
同一名の関数があるからじゃね? 紛らわしい名前は避けるのが普通。自分の為にも他人の為にも。
2007の分割フォームで、イベントで開く時にデータシート部分にフォーカス移動するにはどうすれば良いですか?
480 :
477 :2008/05/09(金) 14:59:59
>>478 Strって関数があるのか・・・知らないで使ってた
481 :
名無しさん@そうだ選挙にいこう :2008/05/10(土) 00:49:43
すみませんが教えてください。 OS=Win vista ACCESS2000 目的 インポートエラーを無くす方法 csvデータをインポートする際に、なぜか10桁以上の数値はインポートエラーとなり、9桁以下の数値はインポートされます。 10桁以上の数値でもエラーとならずインポートされる設定がございましたら教えてください。 よろしくお願い申し上げます。
482 :
名無しさん@そうだ選挙にいこう :2008/05/10(土) 00:50:37
フィールド型が間違ってるんじゃないの?
>>481 482氏にちょい補足。
長整数型でも-2,147,483,648〜2,147,483,647までだよ。
>>483 氏にちょい補足。
Currency型を使ってくだされ。
486 :
481 :2008/05/10(土) 01:25:46
とても困っているので教えてください インポート前に、設定が必要かと思いますが。。。。 インポート後の「テーブル」-「データ型」‐「標準」の「フィールドサイズ」は「長整数型」になっています。 インポート前にどこで「Currency型」を設定すればよいのでしょうか。
「フィールドサイズ」を「通貨型」(=Currency型)にしてくだされ。 あとマルチ投稿は大抵の場合、嫌われる行為なので遠慮してくだされ。
488 :
481 :2008/05/10(土) 01:50:51
マルチはもうやりません。 通貨型に変えて再度インポートしましたがだめでした。 どうすればよいでしょう。困りました。。。
テキスト型は? 484氏の解決方法が気になるが。
490 :
481 :2008/05/10(土) 02:17:41
テキスト型にしましたがやはりダメでした。。。。
ちなみに 「ファイル」→「外部データの取り込み」→「インポート」 の順で新規テーブルにインポートは? その際、「設定」で該当フィールドを通貨型に変更することを 忘れずに。
492 :
481 :2008/05/10(土) 02:52:19
できた!! うまくいきました。 お手数おかけしました。 ありがとうございます!!!!
493 :
名無しさん@そうだ選挙にいこう :2008/05/10(土) 08:20:54
すみませんが教えてください。 いままでアクセスでいろいろ作成しましたが、 全てクエリで結合しデータの表示 をするシステムで、リレーショナルシップの設定を一切してませんでした。 別に使えるのですが、これはなにか問題があるのでしょうか。
特に問題なし。 俺もリレーションは勉強中しか使ったことがない。 だが、余裕ができたら使ってみるのも悪くはない。
496 :
名無しさん@そうだ選挙にいこう :2008/05/10(土) 09:54:26
クエリーでの数字の区切り方について教えてください。 OS vista Vir 2007 テーブルに以下の数値があります。 9090 31700 82050 これをクエリーで、下3桁をなくして、 9 31 82 という数値に変えたいのですが、関数などございましたら教えてください。 EXCELだと、Roundown(「数値」/1000,0)というやり方でやれるのですが、ACCESSにはRounddown関数が無いようなのです。
>>496 ネットを検索スレばわかるが、AccessでRound関数を実現するモジュールを
公開している人は、すくなくとも2名いる。
探せばすぐでてくるよ。
へたなことするより、それを導入したほうがいい。
単純に下3桁なくしたいだけなら x \ 1000 で商が求められる。
ゴメン。 クエリでだったか。
500 :
496 :2008/05/10(土) 10:09:39
VBAな大げさなものを使わなくてできる簡単な方法はありませんか? 単純に1000で割ると小数点以下が発生しますが、小数点以下を無くしたいです。
501 :
496 :2008/05/10(土) 10:14:50
検索して、自分で見つけました。 Int関数 Int([数値]/1000) で求められました。 みなさんありがとうございました。
int 関数を使え
長整数の範囲なら498が使えそう。
505 :
496 :2008/05/10(土) 10:53:34
>>503 便利なものを教えていただいてありがとうございます。
他にお伺いしたいことがあります。
SQLとVBAを習得しようと思ってます。
SQLとVBAの違いはなんでしょうか。
SQLはACCESSのクエリー機能を組む時に使用する言語で、VBAはSQLで作成されたクエリーなどをマクロとして連続して動かすための言語というような認識でよいでしょうか。
またSQLという言葉はACCESS以外でも聞きますが、他でも使える言語なのでしょうか。それとも別モノなのでしょうか。
VBAはMSoffice製品に共通という認識でよいでしょうか。
よい
>SQLとVBAを習得しようと思ってます。 >SQLとVBAの違いはなんでしょうか。 それが何かわかってないのに習得したいとは思うんだ
508 :
496 :2008/05/10(土) 11:45:34
以前SQLを使ってました。もう忘れましたけど。 ACCESSは奥が深い分、奥を知ると便利な道具に変わるという実感を過去に得たことがあります。 ゆえに極めることは無理ですが、そこそこ好きなように使えるようになりたいと思ってます。
>>505 ほんとに検索しない野郎だな。どういう脳みその構造してんだ?
まず、SQLはデータベースで様々な検索、テーブルの結合・作成・削除など、まさにデータベースの
基盤そのものをいじくるための言語というよりも、コマンドだ。
一方で、VBAってのは、プログラミング言語であって、アプリケーションの挙動や、命令、処理、また、
コントロールするためのものだ。
Accessは、VBAの中でもSQL文を発行して扱うことはできるが、そもそも、Accessのクエリだって、SQL
ビューでみればSQLで書かれてんだよ。C/Sで背後にMySQLなんかを立てているなら、パススルークエリ
で直接、MySQLにSQL文を送ることだってできる。だがな、SQLってのは製品ですべて共通しているわけ
じゃない。方言があって、Accessで使っていたSQLがMySQLでそのまま通用するとは限らない。
VBAはそもそもSQLとはなんの関係もない。ただ、扱えるってだけの話で全く役目も違う。マクロはあくまで
自動化の処理のためのものであって、VBAはそれを叩けるだけの話だ。ボケ
口は悪いが実は親切な509タンなのでした。 SQL: Simple Query Language 元々はMSが提唱したクエリ作成言語 VBA: Visual Basic for Application アプリケーション向けBASIC言語
>>511 > SQL: Simple Query Language 元々はMSが提唱したクエリ作成言語
コーヒー吹いた www
>SQL: Simple Query Language 元々はMSが提唱したクエリ作成言語 wwwwww
>SQL: Simple Query Language 元々はMSが提唱したクエリ作成言語 ああああーーーーーっ
516 :
496 :2008/05/10(土) 18:47:54
>>509 ご親切に教えてくださいましてありがとございます。
とてもわかりやすく、大変参考になりました。
私もSQLとVBAを使いこなせるように頑張ります。
またわからないことがありましたらよろしくお願いします。
下のようにデータを最新の日付だけのものにした テーブルを作成しようと思ってます。 番号 名前 ポイント 日付 1 A 3 3/1 2 A 9 4/1 3 B 8 3/1 4 C 6 3/1 5 C 8 4/1 6 B 4 5/1 番号 名前 ポイント 日付 2 A 9 4/1 5 C 8 4/1 6 B 4 5/1 名前と日付だけのクエリで、名前をグループ化、 日付を最大にした集計は作ったんですが、 そこに番号とポイントを含めようと思っても、うまく行かないです。 諸先輩方教えてください。 環境WinXP,Accees2003
>>517 名前と日付でひとつクエリを作って、
そのクエリとテーブルでもうひとつクエリを作る
519 :
517 :2008/05/11(日) 02:11:01
>>518 レスありがとうございます。
早速作ってみたのですが、下のようになってしまい混乱中です。
番号はひとまず置いといて、名前と日付の最大のクエリにポイントを
くっつけてみたらすべてのポイントが表示され、
しかもその日付が最大だらけです。
名前 ポイント 日付
A 3 4/1
A 9 4/1
B 8 5/1
C 6 4/1
C 8 4/1
B 4 5/1
番号とポイントをどうしたいんだ?
521 :
518 :2008/05/11(日) 03:20:49
>>519 SELECT テーブル.番号, クエリ1.名前, テーブル.ポイント, クエリ1.日付の最大
FROM テーブル INNER JOIN クエリ1 ON (テーブル.名前 = クエリ1.名前) AND (テーブル.日付 = クエリ1.日付の最大)
ORDER BY クエリ1.名前;
>>519 あのさ、おたく、頭の中にしまっているもの全部出したらどうよ?
全部説明もせずに人に質問して置いて、最大だらけってあんたの説明ならば
それであってるじゃないww
今も昔もそうだが、人に質問する時に、あとからあとから、小出しに出すのを
やめないと、今度は誰も答えてくれなくなるぞ
>>521 ありがとうございます。
答えを書いてくれてあるんで、できて当たり前ですけどできました。
スレ汚してスイマセン。
524 :
名無しさん@そうだ選挙にいこう :2008/05/11(日) 11:43:57
>>517 的確に伝えられないそんなアナタは、桐にしとけ
桐なら初めから単一化ってコマンドあるど
526 :
名無しさん@そうだ選挙にいこう :2008/05/11(日) 21:40:43
>>525 松田勇作(探偵物語)がコーヒー吹き出してる写真
>>524 >>517 は十分的確に伝えてると思うけど?
これを理解できない人が使うのが桐なんですか・・・
>>528 >517 は最初から番号とポイントを含めてクエリ作れば良いじゃん
グループ化 ALL とか like"*" とか、、
Access2007だと、自動的に設定されるけど
これを理解できない人は、桐にしとけ
530 :
名無しさん@そうだ選挙にいこう :2008/05/12(月) 12:02:13
桐ってなに?
>>519 具体的にどうするの?
やってみたけどうまくいかん
おらも、桐にしとけに賛成だべ。
まあ、何だな、、 最大値を求めるんじゃなくて、最大値を持つレコードを選択しないとな
WinXP、Access2003です。 フォームに表示されている内容をWeb上のフォームに貼り付けたいのですが、 住所、氏名、TELなどひとつずつコピーペーストするのが面倒です。 一気にコピーする方法はないですか。操作自動化のフリーソフトを使いましたが、 座標で記録されるため、その時々で座標がずれてうまくいきません。
537 :
名無しさん@そうだ選挙にいこう :2008/05/13(火) 12:59:29
だから桐ってなに?
桐とは、 このスレで質問したりして超苦労してる機能が全部簡単に出来ちゃう魔法のソフトらしい
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 Googleやヘルプでの検索キーワード ACCESS2007のその他のプリンタを記憶してくれないホットフィックスを当てた 後くらいから、デザインビューやレイアウトビューでー、 オートフォーマットを指定した際にバックグラウンドの画像が切り替わってくれません。 あまり必要でない機能なので問題はないのですが、 ホットフィックス当てた方で同じ症状になっているかたいらっしゃいますでしょうか。
オートフォーマットって元々バグってるでしょ フィールド順が勝手に入れ替わっちゃう
「桐にしとけ」でぐぐったらこのスレばっか
>>538 ま、実際には、桐は殆どアプリケーション的なことができないけれどね。
Exxelの延長でしかない。
543 :
名無し募集中。。。 :2008/05/14(水) 11:25:09
しつもん クエリの抽出の件なんですけど 07001〜07999 08001〜08999 09001〜09999 こういうデータがありまして この中の 07501〜07999 08501〜08999 09501〜09999 みたいな##501〜##999 を抽出したいんですけど Between "##501" And "##999" とかじゃ駄目でした どうすりゃいいか教えてください
>>543 元データが数値型なら、
modで1000で割った余りを求めて、
500を引いた結果が、1〜499の範囲の物を求めればOK。
クエリ画面で作るなら、こんな感じ。
フィールド1:元にしたフィールド名(例えばhogehoge)
フィールド2:「適当なフィールド名: ([hogehoge] Mod 1000)-500」
抽出条件として「Between 1 And 499」
元データが文字型なら、一度数値型に変換すればOK。
お試しくださいな。
桐でアプリ組んでるお! Accessの1/5の期間で開発できるお! オラクルのフロントエンドも桐でしてるお!
アクセスも桐に追いついてきてるぞ。 近年は、レコードロックも代替え背景色も出来るようになってるし、2007ではレポートも簡単になった。 日本語処理弱いのと、マウス必須なのはちょっとかなぁ。 バグは相変わらず多いけど w まあ、それぞれ個性があって良い勝負ってとこで。
Access は継承とかファミリとかの概念がないからプロパティ設定がメイドイお!
549 :
名無しさん@そうだ選挙にいこう :2008/05/14(水) 19:58:30
すみませんがおしえてください。 表形式のレポートを作成しているのですが、 フィルター適用させて、該当データーが全くないとエラー表示されてしまいます。 それをエラー以外の空欄でも0件でもいいのですが、表示させたいのです。 よろしくお願いします。
IIfか条件付き書式でIsError=Trueの処理をしてやれば? つか、Ver.ぐらい書けよ。
2007のレポート簡単になったか・・・? 並び替えの設定がなんか前より面倒だしレコードソースをデザインビューから変更しても なぜか保存されないし、そろそろキレそうだわ・・・
552 :
549 :2008/05/14(水) 23:49:35
>>550 ありがとうございます。 条件付き書式で回避するのですね。 と早速やってみましたが、エクセルのように =IsError([項目名]) だと数式が不正ですとなってしまいます・・・。 違うのでしょうか。 バージョンは2003です。
エラーの発生を前提にするんじゃなくて エラーの発生を未然に防ぐ方向で考えるほうがいいんじゃない? フィルタ適用後のレコード件数を事前にカウントしておいて 0件だったらその旨メッセージを表示してフィルタ適用しないとか。
>>552 "="いらね。
条件書式は2000からの機能だからVer.を聞いた。
555 :
名無しさん@そうだ選挙にいこう :2008/05/15(木) 10:32:05
557 :
名無しさん@そうだ選挙にいこう :2008/05/17(土) 01:30:33
すみませんが、おしえてください。 OS Vista Version 2003 スキル 初心者 クロス集計結果をマクロでExcelにエキスポートする際に、指定のExcelシートにエキスポートするにはどうしたらよいでしょうか? 例 あらかじめ、Excelにシートを作ってあります。 A.xls シート1 シート2 シート3 これを5月は、シート1にエキスポートします。 エキスポート後 A.xls シート1 売上3000円 シート2 シート3 次の月にはシート2にエキスポートします。 A.xls シート1 売上3000円 シート2 売上4500円 シート3 このように、Excelに指定のシートにエキスポートする方法がございましたら教えてください。 よろしくお願いします。
そういや駅すぱあとってあったな
560 :
557 :2008/05/17(土) 14:47:34
VBAでもかまいませんので教えてください
Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True ・・・ 以下、頑張ってね
562 :
557 :2008/05/17(土) 19:57:28
具具ったらでるよ。
564 :
557 :2008/05/17(土) 20:43:14
>>563 何をキーにしてググれば出るのでしょうか?
565 :
名無しさん@そうだ選挙にいこう :2008/05/17(土) 21:31:45
「ACCESS VBA EXCEL エキスポート」でググレ
566 :
名無しさん@そうだ選挙にいこう :2008/05/17(土) 21:32:08
| ̄``''- 、 | `゙''ー- 、 ________ | ,. -‐ ''´ ̄ ̄`ヽ、_ / |, - '´ ̄ `ヽ、 / / `ヽ、ヽ / _/ ヽヽ/ / / / / / / ヽハ く / /! | 〃 _/__ l| | | | | | | ||ヽ \l// / | /|'´ ∧ || | |ー、|| | | l | ヽ /ハ/ | | ヽ/ ヽ | ヽ | || /|ヽ/! |/ | ヽ / | ||ヽ { ,r===、 \| _!V |// // .! | | || |l |ヽ!'´ ̄`゙ , ==ミ、 /イ川 |─┘ | ハ|| || | """ ┌---┐ ` / // | V !ヽ ト! ヽ、 | ! / //| / ヽ! \ハ` 、 ヽ、__ノ ,.イ/ // | / ┌/)/)/)/)/)/)/)/)/)/)lー/ ` ー‐┬ '´ レ//l/ |/ |(/(/(/(/(/(/(/(/(/(/│|| |\ 〃 r'´ ̄ヽ. | | ト / \ /  ̄`ア | | | ⌒/ 入 〉  ̄二) 知ってるが | | | / // ヽ 〈! ,. -' | | ヽ∠-----', '´ ', | \| | .お前の態度が | |<二Z二 ̄ / ', | | | _r'---| [ ``ヽ、 ', | | | 気に入らない >-、__ [ ヽ ! \.| l. ヽ、 [ ヽ | ヽ| \ r' ヽ、 |
567 :
名無しさん@そうだ選挙にいこう :2008/05/17(土) 23:54:14
あるモジュールの実行途中に最適化処理を行いたいのだけど、 VBエディタ上でコードを実行しているため SendKeys "%tdc" が利かない(そもそもVBEのメニュー上に"最適化/修復"が無いため)。 どうしたら良い?
途中って、VBE上じゃなくても無理じゃね?
そうなん? ていうのも テーブルデータの全削除 オートナンバーのリセット を同時に行いたいからなんだけど、何か良い方法ないかな?
570 :
567 :2008/05/18(日) 00:19:23
・テーブルデータの全削除 ・オートナンバーのリセット(←このために最適化) ・テーブルへ新規データをインポート を一度に行いたいってことね。まじ困ってます。
>>567 DROP TABLEでテーブルを丸ごと削除後、
CREATE TABLEにてテーブルを新たに作り直せば良いと思う。
オートナンバーのリセットもコードで処理すれば良いのでは
最適化できたとしても、その時点でコードの実行は止まっちゃうからね〜
>>573 ALTER TABLE テーブル名 ALTER COLUMN 型名 Counter(1) でいける。
>>567 の方法でも可
テーブルのオートナンバーを振りなおす方法(β版) でいろいろ解説されています、ググってみ。
577 :
573 :2008/05/18(日) 07:50:59
578 :
名無しさん@そうだ選挙にいこう :2008/05/18(日) 20:03:27
桐にしたら全ての難問が解決しますた
579 :
名無しさん@そうだ選挙にいこう :2008/05/18(日) 21:55:02
漏れも、漏れも。全部解決したぞ。コンパイルできないけど。
だな
581 :
名無しさん@そうだ選挙にいこう :2008/05/19(月) 19:04:39
教えてください。 2000で作成したファイル(クエリ・マクロ含む)を2003で開くと、 なぜかクエリとマクロが動いてくれません。 これは仕様なのでしょうか・・・? 【 システム環境 . 】 WindowsXP, Access2000 2003 【 VBAが使えるか .】 はい 【 VBAでの回答 】 可 【 検索キーワード 】 access 2000 2003 クエリが 動かない
582 :
名無しさん@そうだ選挙にいこう :2008/05/19(月) 21:26:30
仕様です つーか、せめて内容くらい書けよカス!
まあ仕様なんだけどマクロはともかくクエリは動くだろ・・・
>>571 んなの簡潔に一行で書け。
「テーブルを一度削除して新たに作る」
>>581 内容も書かずに、動く動かないほざくおまえのような馬鹿は死んで良いと思うよ。
そんな質問で、誰か答えられるとでも思っているのか?
おまえのような 馬鹿 は桐でもFilemakerでも使ってろよ。
586 :
581 :2008/05/20(火) 09:09:45
>>585 まあそんなに人を馬鹿馬鹿言わないでください^^;
でもまあ、バージョンがアップするとマクロが動かないことがあるってことが
わかったので感謝してますヨ
587 :
名無しさん@そうだ選挙にいこう :2008/05/20(火) 10:46:18
588 :
名無しさん@そうだ選挙にいこう :2008/05/20(火) 19:24:18
>>581 スキルはさておき、セキュリティレベルが「高」なのでは?
589 :
581 :2008/05/20(火) 19:49:49
>>588 レスサンクス。それは解除してあります。
実はその後、マイクロソフトのサポセンで検索したら解決できました。
コード→デバックしたらマクロが動くようになりました。
590 :
588 :2008/05/20(火) 20:35:55
>>581 せっかくなので、その原因と解消方法を晒すとこのスレの価値が上がるとおもうんだけど。
「自己解決しました」と一緒だね。
591 :
581 :2008/05/20(火) 21:01:02
>>590 「名前が適切ではありません」というエラーが表示されていたんですよ。
サポセンで検索したらHITしました。
不要なコードを削除すればおk、と書いてあったのですが、よくわからなかったので
書いてあるとおりにしたらマクロが動くように。
ACCESS2000のコントロールボタンを押すと フィルタが開いて検索文字を入れるようにしたのですが、 IMEを当初からひらがな(変換あり)にはできないのでしょうか? 一般のフィールドと違って、プロパティにIMEコントロールの 設定がでてこないのですが。
593 :
名無しさん@そうだ選挙にいこう :2008/05/20(火) 22:50:32
テキストボックスじゃないの?
>>592 パラメータクエリじゃなくてさ、フォームでもつくってテキストボックスつくって
そこのキーワードをもとにクエリを開くように、クエリの抽出条件を設定した
ほうがいいよ。
それが嫌なら、ガッツでなんとかするしかない
いや、優しさと思いやりで、何とかして欲しい
コントロールボタンとはおそらくフォームに配置したコマンドボタンのことだろうと推理できるが IMEのプロパティがない、つまり通常のテキストボックスではない「フィルタ」とやらの正体が 母さん全然わかんないわよ。
自分も「フィルタが開いて」というオレ語で脱落。
もしかしたら「フィルタ/並べ替えの編集」かも
599 :
質問です1 :2008/05/21(水) 09:57:51
【 システム環境 】 WindowsXp, Access2003 【 VBAが使えるか 】 いいえ 【 VBAでの回答 】 可 【 検索キーワード】 Access 集計 行と列 Accessに毎日記録しているデータがあります。これを月別に集計した表を作りたいの ですが、列を月に、行を記録項目にするのは集計クエリでは不可能でしょうか。 自分でも調べて見ましたがクロス集計クエリだと行もグループ化する必要があるよう なのですが行の項目はその項目全体だけでいい(むしろ全体だけがいい)のです。 調べ方が悪いだけで実はできるのか、クエリは無理でもレポートとかならできるのか、 諦めてエクセルにデータを貼り付けて行列入れ替えにするか、悩んでいます。
600 :
質問です2 :2008/05/21(水) 10:00:24
データは下の例えのようなもので、月の集計は項目ごとに合計したいだけです。 日付 マラソン ダンベル 〜 2008/05/19 5km 10分 〜 皆さんであればどうされますか(実際は仕事上のデータなので始めからエクセル使う というのはナシで)。教えてください。よろしくお願いします。
そういう処理は桐にしとけよ
602 :
名無しさん@そうだ選挙にいこう :2008/05/21(水) 12:31:55
603 :
名無しさん@そうだ選挙にいこう :2008/05/21(水) 14:02:12
accessを学び始める前で初心者にすらなっていないものです。 たとえば以下のようなものを作りたいのですが、 0から独学スタートすると大変でしょか? 出席番号を打って、(確認のために)生徒の名前等を呼び出し、 その生徒のテストの点を入力する。 また、次の生徒の出席番号を打って、生徒の名前等を呼び出し、 その生徒のテストの点を入力するというフォームを作る といったものです。 ググラナイカスでスマソ
>>603 作りたいものが明確であるほど習熟は早い。
いいんじゃないかと思うよ。
605 :
603 :2008/05/21(水) 16:49:49
>>604 ありがとんです!
思い切って、
アクセス初起動...してみます
606 :
名無しさん@そうだ選挙にいこう :2008/05/21(水) 20:25:34
>>599 グループ化させたくないのならばキーを項目に入れてあげればいいじゃん。
自己解決しました
>>591 > 「名前が適切ではありません」というエラーが表示されていたんですよ。
何でそんなこと後で書くの?
馬 鹿 ! ! ! !
>>603 最初から生徒番号+名前の一覧が表示されててそこに点数だけドカドカ入力していくほうが
全員ぶんの生徒番号叩く手間がなくていいんじゃね?
脳内仕様が決定済で絶対その通りに完成させようとすると結構大変なことが多いよ・・・
610 :
名無しさん@そうだ選挙にいこう :2008/05/21(水) 23:48:32
>>603 テーブル構成はM_生徒マスタ、T_点数テーブル。連続で入力し点数を反省させたいならフォーム上に非連結のテキストコントロールを並べて更新クエリーorADO
で書き込むのが早いかもね
611 :
名無しさん@そうだ選挙にいこう :2008/05/21(水) 23:48:56
×反省 ○反映
そういうのは桐で入力すれば最強なんだが
それ、反則。
test
615 :
名無しさん@そうだ選挙にいこう :2008/05/22(木) 20:05:41
【 システム環境 . 】 WindowsXP Pro, Access2003 【 VBAが使えるか .】 はい 【 VBAでの回答 】 自信なさスorz 【 検索キーワード 】 Googleやヘルプでの検索キーワード はじめまして、グラフのことで質問があります。 フィールドに「得意先名」と「200804の売上」「200803の売上」があり、毎月フィールドを増やしています。 レコードが得意先の数あり、得意先が増えたときはレコードを増やしています。 本来は得意先の数のテーブルがあって、毎月レコードを増やすのが本当なのかもしれませんが、得意先が500以上あったため、立ち上げの時点でこのようなテーブルになりました。 それで、質問なのですが、時系列での売り上げの増減のグラフを描きたいのですが、フィールドを横に見る得意先別のグラフを作ることは可能でしょうか? 試してみたのですが、フィールドは6つまでしか選択できませんと出ます。 エクセルにエクスポートしてグラフを作ってみたのですが、毎月グラフを出すことを考えるとACCESS上でグラフが作れないものかと思い書き込みしました。
[ACCESS2000] サブフォーム付きのフォームから、 サブフォームの指定レコード(印刷フラグにチェック)を印刷したいのですが、 うまく印刷できません。 具体的には更新クエリの結果、印刷データをQ_Reportに出力し、 それをレコ−ドソースとするレポート(R_Report)を開くのですが、 クエリーにはデータが格納され、レポートも直接開くと データが表示されるものの、 DoCmd.OpenReport "R_Report" で印刷してもデータが入らない状態です。 どのあたりに原因がありそうでしょうか?
617 :
名無しさん@そうだ選挙にいこう :2008/05/22(木) 20:26:58
DoCmd.OpenReport "R_Report",AcPreviewではどう?
>>615 >>本来は得意先の数のテーブルがあって、毎月レコードを増やすのが本当なのかもしれませんが
いいえ、さらにダメです。
まずは下記のようなテーブルに変換してください。
得意先識別名, 年月日, 金額
A社, 200802, 10000
A社, 200803, 10000
A社, 200804, 10000
B社, 200802, 10000
B社, 200803, 10000
B社, 200804, 10000
C社, 200802, 10000
619 :
616 :2008/05/22(木) 22:07:10
>>617 レスありがとうございます。
明日会社で試してご報告させていただきます。
620 :
603 :2008/05/22(木) 22:17:47
>>609 >>610 ありがとうございます!
>最初から生徒番号+名前の一覧が表示されててそこに点数だけドカドカ入力していくほうが
全員ぶんの生徒番号叩く手間がなくていいんじゃね?
何百もの枚数で、ランダムに出席番号が出てくるので。。。
(番号順に並べるのが番号入力より異常に大変)
ようやく、ぼんやりとどんなソフトかイメージがつかめました。
>フォーム上に非連結のテキストコントロールを並べて更新クエリーorADO
ありがとうございます。まだ、理解できてないですが、
フォーム上に非連結のテキストコントロールを並べて更新クエリーと
いうのに挑戦してみます!
これなら私のような初心者でもぎりぎり対応できそうな
希望がかすかにあるような錯覚をみました(いみふ)
621 :
615 :2008/05/22(木) 22:53:26
>>618 なるほど。やってみます。
ちなみに得意先の名前とリンクした得意先IDというのが、販売管理ソフトのSQLと連動してるんですが、何を主キーにすればいいでしょう。
オートナンバーを振ればいいですかね?
さらにそのあとはどうすればいいでしょう?
得意先全件を得意先ごとにA4の紙に、金額一覧とグラフを一緒にしたものを出力したいのですが・・・。
>>621 > 【 VBAが使えるか .】 はい
って、マジか?
別にVBA使えなくても、何でもない基本なんだが
ごめん。 普通に出来たわサンクス。 あと、売り上げと日付しか表示しないんで、無駄に縦に長くなるから2列とかに出来ないかなぁ。
桐にすれば簡単だけど、 仕方ないからプリンタドライバの分割印刷機能使え
>>623 2列できるでしょ?レポートの印刷設定
レポート全体を2列にするのはそれでいいんだけど、入れ子の末端の中身だけ2列にした。 具体的に言うと、同じ得意先の中の売り上げの金額だけ2列にしたいなぁと。
それこそ桐
とりあえず、今回は締め切りもあったんで、クエリで条件絞った後に必死でエクセルで作ってしまった。 1日かかったorz 来月のことを考えると、データベースで今からつくっとこうと思って。 桐ってそんなにすごいのか。 サブレポート?
別に桐が凄いって訳じゃないでしょ。 大抵のことが安直にできちゃう。 ある意味、オラクルとかSQLサーバーとか未満は桐で間に合っちゃうけどな。 将来サーバー必要ならアクセスで頑張った方が良いぞ。
あーそれそれ ASP使ってwebからレコード更新するところまで作る予定なんで、一応access以外はあかんのだw
じゃ、アクセス。
>ASP使ってwebからレコード更新するところまで作る予定 おま・・・ サブレポート?とか質問してるレベルでどんだけ・・・
>>633 ま、目標はデカイほどいいんじゃない?
多分できるようになるまで彼の場合3年は掛かるだろうけれどね
IIS鯖はもう立ってるし、レコード追加のサンプル動くとこまでは試してるんで、レポートの作りこみ中でつ ASP自体はそんなに抵抗ないんで、問題と思われ。 RDBが初めてで苦戦してるんだが、さすがに3年もかけてられん;; 1ヶ月で完成させる予定。 とりあえず、いろいろ本も漁ってみたんだけど、グラフのことを詳しく書いてるアクセスの本ってないねぇ。 いろいろ分かったんで、ありがとう!
天才現る
10人くらいでスケジュールDB(ACCESS)を共有利用する予定なんですが、 立ち上げ、停止をしているときにエラーを吐いたりすることがあります。 このエラーがでたとき、他の人が利用中のACCESSもエラーになってしまうのでしょうか? たぶんエラーになると思うのですが、こういうのはどうやって回避するんでしょうか?
638 :
名無しさん@そうだ選挙にいこう :2008/05/25(日) 11:33:03
>>637 あのさ、AccessってパーソナルDBなの
そこんところわかってる?共有ってwww MySQLでも立ち上げて、リンクテーブルにでもして
使えば?ちょっと最初の段階から君、躓いているとしかいいようがないよ。
640 :
名無しさん@そうだ選挙にいこう :2008/05/25(日) 13:40:25
MY SQLも結構スキル要するから小規模ならSQLEXPでいいんじゃね?
まあダメなやつは何を使ってもダメなんですけどね
>>640 >>641 いずれにせよ、このままにしておいたら、彼のDBは間違いなく、壊れる。
重要なデータなどを仕込んでいたら大変なことだ。
っていうか、AccessのDBを共有しようとする人間が後を絶たないな・・・・
せめて、SQLiteっていう思考にいくならともかく・・・
責められるべきは共有しようとする人間じゃなくてAccessの共有機能だと思うが
木に寄りて魚を求むといってな・・・
>>635 Excel側にテンプレ作っといて、Accessからそこに吐き出す方向も考えてみた方が幸せになれるかもしれない。
レポートってオマケ程度の機能しかないように思える。
>>637 今、上司命令でXOOPSってのをいぢってるんだけど、面白いよ。
(間違ってもサイコーではないのだが)
スケジュール共有だけならもっと専門的なソフトがいくらでもある筈だけど、Accessじゃなきゃいけない理由でもあるんかね。
GroupWatcherでええやろ
647 :
名無しさん@そうだ選挙にいこう :2008/05/27(火) 16:33:21
access2000で何度かデータベースに挑戦したのですが、完全に理解できずに全然実用レベルに達しない私でも、access2007の新UIなら理解しやすいのかなぁって甘い事を考えてるんですが・・・どうでしょうか? お金をドブに捨てるようなものですかねぇ・・
>>647 リボンなんちゃらはますますわかりにくい
てか理解できるかできないかは、そんなUIの部分には依存してないと思う
>>647 あなたのいう理解うんうん部分は、UIとは関係ない部分なのだ
652 :
647 :2008/05/27(火) 22:35:18
そっすよねぇ・・自分でもそんな気がして躊躇してました。 入門書を読み進んでもリレーションシップ辺りでフラフラになります・・ 一度試用版を使ってみます、ありがとうございました。
653 :
653 :2008/05/28(水) 10:24:36
【 システム環境 】 WindowsXp, Access2000 【 VBAが使えるか 】 はい 【 VBAでの回答 】 可 【 検索キーワード】 access oracle null Accessよりoracle(10g)にODBC接続を行い、表形式にてテーブル内容を表示させています。 oracleのテーブル側の定義にて項目”商品コード”にプライマリKEY、notNull、属性char(4)で設定がされています。 この商品コードに通常であれば"aaaa"とか"bbbb"等の設定がされているのですが、データ表示後に未入力状態もしくは半角スペースで入力すると "バリアント型ではない変数に Null値 を代入しようとしましたのメッセージが出力されてしまい変更できません。 フォーム上で半角空白を入力した場合、フォーカスが移動すると半角空白はクリアされてしまうのでしょうか? もしそうならばそれを回避する方法はありますか? だらだらとした文章ですみませんが教えてください。 よろしくおねがいします。
そもそも、PrimaryKeyを手入力させるというテーブル設計そのものが間違っているな。
>>653 フォーム上のTextBoxを使用する際に、
TextBox.Text と TextBox.Value の違いでトラブってる気がする。
フォーカスの移動としか書いてないから分かりかねるが
.Text <> .Value の状態ってのはあり得るからね。
.Text が半角スペース、.ValueがNullになっているんじゃないかな。
エラーのメッセージは出るかもしれんけど その後変更できないってことはないだろ
Accessのテキストボックスが末尾の半角スペースをトリミングするのは有名。 半角スペースしか入力しなかったら、全部カットされてNullになる。 回避策は昔の話なんで忘れた。VarCharだったら""で空文字入ったような。
658 :
657 :2008/05/28(水) 23:54:44
読み直したら、何のヘルプにもなってないな。忘れてくれ。 あとテキストボックスだけみたいな書き方したけど、テーブル 直接入力でも一緒だからAccess自体がそういうつくりってことで。
【 システム環境 . 】 WindowsXP, Access2003 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 可 【 検索キーワード 】 エクセルからACCESS 参照 等 仕事上で、製品に対して番号(製品番号)がありそれに付随するロット番号が1:1である状態で 今まではExcelで番号シートのみを管理し、報告業務として○○番の製品とロット番号(vlookup関数で検索)をエクセルの関数で処理していたんですが 製品番号自体のファイルだけでも膨大にあり、処理に遅延が発生する事や、この先単純にエクセル内に収まらない事があり 製品番号のエクセルをACCESSに移行させたんですが、 エクセルからACCESSに対してデータの参照を行う事はできますでしょうか? ACCESS内には単純にテーブル内にフィールドとして製品番号 ロット番号 が入力されているのみなんですが・・・勉強不足で申し訳ないです。 ---------------------- 要点的にはエクセルのセルに製造番号を入力→Accessの該当テーブルに目的の製造番号を検索し付随するロット番号をエクセルの製造番号の横に入るようにする という事をしたいのですが・・・ ACCESSは勉強中で本来なら理解した上で使用したかったのですが・・・エクセルが100M間近・・・他の業務に支障が出てきているので>< 現時点では独力では時間的にせっぱつまっているのですいませんがよろしければお願いします。
660 :
名無しさん@そうだ選挙にいこう :2008/05/29(木) 05:07:54
一番簡単な方法は桐を使うこと。 二番目に簡単な方法はエクセルからACCESSとか変なことしないでACCESSだけで完結させること。
662 :
659 :2008/05/29(木) 08:44:49
遅れました。レスありがとうございます。
>>660 ACCESS単体での本は購入しているのですが・・・
URLの冊子購入して更に勉強してからというのはかなり個人的にきつくて・・・
>>661 1、会社で既にあるのがACCESSで桐がないのと私自身の知識がないのと、たぶん会社のPCなんでソフトを購入しようにも理由は様々あるんですが了承されないと思われます。
2、これについては冊子も数点購入してますので勉強しながら順次移行するつもりで行うつもりです。
ただ私自身は
>>659 の業務だけなんですが他の方も別のエクセル等用いていて「はい、一括でACCESSで統合しました」というのはかなりきびしいです。
とりあえず今の時点だけでも、安易な考えですが製造番号とロット番号だけのエクセル・・・容量的にでかいしACCESSとしての機能を活用するというより収めるだけなら
こちらの方が後々、都合がいいなという現時点での考えです。
------------
この時点でもエクセルとの相互活用が私が思っているより難しいならあきらめますが、難しいか安易か・・それもわからなくて・・・
難しくないけど、メンドイ、煩わしい 中途半端は、労多くして益少なし
>>659 こんな感じでExcelの標準モジュールに。
Function GetLotNo(key As String) As String
Dim Conn As Object, Result As String
Set Conn = CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[mdbのフルパス]"
Result = Conn.Execute("SELECT [ロット番号のフィールド名] FROM [テーブル名] WHERE [製造番号のフィールド名]='" & key & "'")(0).Value
Conn.Close
Set Conn = Nothing
GetLotNo = Result
End Function
で、ロット番号を表示したいセルに
=GetLogNo([製造番号のセル])
パフォーマンスはわからん。すごく遅いかも。
>>659 正直、Access一本にした方が他のスタッフの方も含めて便利だと思うんだけどなぁ。
大量データ+定型業務にはAccessが向く。
少量データ+不定型業務にはExcelが向く。
何事も使い分けだと思うよ。
処理自体をAccessへ移行することはできるが 使い勝手はExcel同様というわけには行かないよ Accessに合わせて手順を再構築しないと。 俺なら入力フォーマットをエクセルで作っておいて、Access上での処理 インポート→データ参照&加工→加工済データ吐き出し をマクロかVBAで組んで自動処理させる。
使い勝手もExcel同様にしたければ、桐かって貰え
ぶっちゃけ、桐を買う金など無い。
理由は書けないけど(馬鹿だから)
672 :
664 :2008/05/30(金) 00:03:28
すまんセルに入れるのは =GetLotNo([製造番号のセル]) ね。
製造番号参照するたび接続>切断を繰り返すのかよ・・・
文句があるなら対案を示せよ共産党
対案もなにも改善の余地ありって指摘してるだけだろうに・・・
mdbの破損リスクを減らすために、パフォーマンスと引き替えに都度Open/Closeも有りの希ガス
都度Open/Closeする方がよっぽど破損リスクが高まる気がするのは漏れだけ?
参照しかしてないんだからそんなのどうでもいいだろ
Openしたまま強制終了させるとLDBだけ残らね?
残る。 まあ支障はないが
クライアントが複数だったりとか、接続を維持しない方がいい場合もあるよねー ケースバイケースでしょ
やっぱ気分的にさ 身軽な時間が長いほうがいいじゃん 都度Open/Closeでいいじゃん >>パフォーマンスと引き替えに 接続しっぱなしと比べて明らかにパフォーマンスが犠牲になったとか そんな実感が得られるほどの違いはないよ いや多分だけど
普通は、そのままOpenしとく。
>>683 そういう場合って、いつCloseするの?
Workbook_BeforeCloseイベント
開きっぱなしにしたところでこの手のプログラムでパフォーマンスは出ないよ
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[mdbのフルパス]" で頻繁にフルパスmdbをシークするのか? まあ、キャッシュは効くだろうが
>>690 >まあ、キャッシュは効くだろうが
根拠は?
キャッシュしないとすると、数式を20個オートフィルすると
20回データベースを開いたり閉じたりするんだよね?
だから、いちいちクローズしないで開きっぱなしにしろ、ってこと
テキストファイル最強。 だって製品番号とロット番号だけのリストだもん。
テキストファイルにはインデックスを持たせられない件
695 :
693 :2008/06/04(水) 01:01:49
入力時にソートを壊さなければ、バイナリサーチで十分。 ソートしないなら、ヘッダにハッシュのインデックス書き込んで そっちのソートを保証すればいい。 まあAccessスレだから別にAccessでいいんだけど、ちょっと雑談。
必ず番号順に入力するの面倒じゃん。 番号以外の項目設けて入力終わったら必ずそっち順にソートが必須とかもっと面倒じゃん。 アフォかと。
697 :
名無しさん@そうだ選挙にいこう :2008/06/04(水) 20:10:11
Accessの複数あるテーブルの中身をそのまま HTMLに変換してファイルを作成したいのですが VBAを使う以外で方法ってありますでしょうか?
メニューコマンドにあるだろ、HTMLへエキスポート
699 :
名無しさん@そうだ選挙にいこう :2008/06/05(木) 16:20:12
賢人方のご経験、お知恵を拝借させてください。 ひとつのMDBを異なる言語のOS&ACCESSで滞りなく動かす方法&開発方法はありますか? 日本語のWIN XP&ACCESS2000でMDBを開発していたところ、 お客さんにそのMDBをアメリカでも中国でもフランスでも使いたいと言われ、 試したところ各国版のWIN XP&ACCESS2000(当然異なるPC)ではまともに動きませんでした。 ACCESSのVBAソースから日本語を全部削除&コントロール名を英字に変えたり、 OSの言語オプションを変えたりしたものの解決に至らず未だ暗闇のまっただ中です。。 (個人的にはアメリカ版のWIN XP&ACCESS2000で開発して他国版に配布がいいのかとあたりはつけてますが) どうぞよろしくお願いします。
日本語版のテキストボックスコントロールは英語版のそれと別物じゃないか? IME制御プロパティとかあるし
日本語版だけだからそんな面倒なこと考えなくていい桐にするといいよ
桐はアメリカでも中国でもフランスでも動かない。
703 :
699 :2008/06/06(金) 12:01:55
>>700 なるほど、だからコントロールのイベントが動かないんですね。。
試しに英語版で作った簡単なフォームを日本語版で動かしたら動きました。(ただ正式な画面は作ってません)
かなり開発済みなので、振り出しに戻る(英語版で開発しなおす)のは避けたいところなんですが・・・。
ありがとうございます。
>>702 そう、桐は他国OSではうごかなさげなんですよね。
動くんじゃねーの? 桐お得意の日本語文字列操作関数は無理だろうけど
705 :
名無しさん@そうだ選挙にいこう :2008/06/06(金) 22:51:26
Accessのmdbファイルをサーバーへ配置して、複数のクライアントから アクセスを行う時に、そのアクセスログを取得できますか?
マイクロソフトがデータベース製品をACCESSとかSQL-Serverとか なんで別々のに分けてるかというとだな・・・
>>705 また、ひとり馬鹿がでてきたか・・・・ 過去ログみて、まだmdbファイルの共有なんて
やろうとしているのか?話にならんな。
いつから、mdbファイルが共有できるような仕組みになったんだ?死ねよ
708 :
名無しさん@そうだ選挙にいこう :2008/06/07(土) 11:16:12
レコードロックは桐の方が、ややマシ トランザクションは桐の方が、全然マシ
> いつから、mdbファイルが共有できるような仕組みになったんだ?死ねよ あほ?
>>709 ←こいつ最高にアホ こういうのが、mdbファイルぶっ壊すんだよなぁ
あれ、サーバーにテーブルを置いてクライアントから書き込みってできなかったっけ? ログの取得はわからないが。
っていうかAccessって最初からファイル共有型データベースだよね
716 :
名無しさん@そうだ選挙にいこう :2008/06/07(土) 18:42:27
まあ、定義域関数とか使ってたらダメだな カード型データベース程度の設計なら大丈V
MDBの最大の欠陥は、アクセスログが記録する仕組みがないという点である。 このため、操作履歴もわからず、またファイルが破損した場合、前回のバックアップ時点までしか復旧させることが出来ない。 こういった欠点を克服するには、アクセスログを記録する仕組みを独自に作成しなければならない。
一つのアクセスファイルをDBとして利用して もう一つのアクセスファイルをクライアントとして利用したらどうなるの? つまり、アクセスからSQLServerにODBCやOLEDBで繋ぐ代わりに アクセスからアクセスに繋いだらどうなるんだろうなって
別にどうともならんだろ 結局バックエンドのmdbにはクライアントマシンがファイル共有でアクセスする訳で Accessがクライアントサーバ型に変身する訳ではない バックエンドとフロントエンドを分けると破損のリスクが減るとか言われてるけどね
>>706 SQL-Serverって大企業も十分カバーできる能力があるんでしょ?
中小企業の一部門の情報共有だったらアクセスでも十分なんじゃない?
>>720 だったら、MySQLなりPostgreSQLでも使えばいいだろ?
なんかデータベースそのものについての知識が欠落しているようだな。
スレタイよめるか?
お前こそスレタイ読めハゲ
>>722 寝言は寝てから言えよ クズ
バックエンドになにつかおうが、てめぇが勝手にきめればいいだけのことだろうが。
つたない技術力で、くだらねぇ質問してんじゃねぇよ ハゲ
724 :
名無しさん@そうだ選挙にいこう :2008/06/07(土) 20:33:11
一応レコードロック装備して桐に追いついたから良いじゃん。 サーバー必要になるケースの繋ぎってことで。
Accessの共有にものすごい拒絶反応を起こす基地外が常駐してるねこのスレ
>>723 つたないのはお前の脳味噌ですよ、お爺ちゃん
>>718 そりゃ交通整理の部分を自前でゴリゴリに作りこめば理論上は安全な運用は可能だよ。
ゴリゴリ部分の労力がハンパないってだけでw
Accessの操作がある程度できることを前提にDBの資格を取るとしたら何がいいでしょうか? ORACLE MASTER Bronze を取得しようかとも考えているのですが意味無いですかね?
>>699 > ひとつのMDBを異なる言語のOS&ACCESSで滞りなく動かす方法&開発方法はありますか?
難しいよ。
もう見たと思うけど。
ttp://support.microsoft.com/kb/404931/ja ttp://support.microsoft.com/kb/815467/ja 上記をちゃんとやったからって動くとは限らないし。
> ACCESSのVBAソースから日本語を全部削除&コントロール名を英字に変えたり、
> OSの言語オプションを変えたりしたものの解決に至らず未だ暗闇のまっただ中です。。
関係あるかどうか知らないけど、フォームやレポートのセクション名は
もうチェックした?
セクション名は、日本語版だとデフォルトで「詳細」とか
「フォームヘッダー」とか日本語で名前が付く。セクション名って
あんまり意識しないかもしれないけど、これ放置すると別言語
環境に持っていったときに致命傷になるので、注意。
> (個人的にはアメリカ版のWIN XP&ACCESS2000で開発して他国版に配布がいいのかとあたりはつけてますが)
それが可能なんだったらそれが無難じゃないのかな。
つか、日本語版Winを他言語で使ってもらった方がいいんじゃねーか?
731 :
名無しさん@そうだ選挙にいこう :2008/06/09(月) 15:41:36
すべてのテーブルの半角カナを全角にしたいんだけどなんか方法あるかなぁ。 ただし、英数に関しては全角ではなく半角にしたいんだ・・・。 マクロで50音全部置換以外でなんかない?
桐なら一発だから、いちど桐で読み込んで置換して、アクセスに戻す
>>731 ググれば自作関数を使った方法とか
色々見つかる訳だが?
>>730 それは無茶。
逆の立場だったら、あるMDBの開発環境が他言語OS上だからって
理由でOSを中国語とかフランス語とかに入れ替えてくださいって
言われて納得するか?w
OSは余り関係ないでしょ、もともとWinは多言語対応だし、ロケールを設定を変更するだけでしょ
736 :
名無しさん@そうだ選挙にいこう :2008/06/09(月) 19:32:29
クエリをエクスポートするときに ファイルの種類の拡張子をHTMLにしたときにDBの内容がそのまま出力されますが この状態だとデータの内容のみでヘッダが出力されません エクスポートでHTMLを出力したいときにヘッダも出力したい場合どうすればいいのでしょうか?
>>736 □ 書式設定とレイアウトを保持したままデータをエクスポートする(W)
にチェック入れる
"(0.1667)" をtrueで通してしまうIsNumeric関数をどうにかしてくれ カッコは数字なのか
>>738 君は桐にしといたほうが良いよ
"(0.1667)" も "(1+3)*2" も true だ
>>738 式が数値として判断できるかどうか?
なのでカッコは数式の一部とみなされるのでは?
まあ、数値判断は独自関数を作った方がいいと思う。
741 :
738 :2008/06/10(火) 19:03:38
>>カッコは数式 昼間は頭が沸騰してたんでついキレて書き込んだけど、言われてみればそのとおり 何か対応できるような関数考えます
?IsNumeric("(1+3)*2") これ手元の2002と2007で試してみたけどFalseだったぞ。 "1+2"でも"1*2"でも結果はFalse "(123)"はTrueだけど ?CCur("(123)") とすると結果が -123 で ?CCur("(0.01)")だと -0.01 なんでカッコでくくるとマイナス評価されるのかよくわからん・・・
>>カッコは数式 Excelを使ったことのない人向けのネタです。 本気にしないように。
IsNumeric(.5)=True なんというか…MSだなぁ
やっぱ桐にするしかないな
.5 は 0.5 なんだから別にいいんじゃね?
いや、全角みたいだぞ
半角だろうと全角だろうとCInt()やCLng()やCCur()可能な文字列であれば 全部IsNumeric()=Trueで別に困らないよ。
>>742 例えばさ、Excelで通貨書式を設定するとき、負数の表示形式サンプルがあるじゃない。ある程度Officeで共通なんじゃない?
751 :
名無しさん@そうだ選挙にいこう :2008/06/11(水) 16:31:56
IsNumeric(".5") でしょ
IsNumeric(";´Д`")
超基本的なことで済まない DCount関数なんだが、以下の環境の時に、以下の条件でレコードを抽出したい 商品テーブルにおいて IDをカウントしたい 抽出条件は、商品分類が1 - 10あるなかで、1と2と3を抽出したい。 このとき、フォーム上で、非連結のテキストボックスのコントロールソースに書く DCount関数の式が知りたい。なかなかうまくいっていない DCount("ID","商品",[商品分類] = 1 or 2 or 3)だとうまくいかない。
商品分類が数値型なら =DCount("*","商品","商品分類=1 Or 商品分類=2 Or 商品分類=3") 商品分類がテキスト型なら =DCount("*","商品","商品分類='1' Or 商品分類='2' Or 商品分類='3'")
756 :
名無しさん@そうだ選挙にいこう :2008/06/12(木) 22:11:47
質問を2つ 1つ目 オブジェクトの「クエリ」で新規作成で選択クエリでテーブルと全く同じ内容のものをクエリとして作成した場合 その出来たクエリについて並び替え(降順昇順)だけを操作不可にしたいのですがどうすればいいのでしょうか? ・テーブルで開いた場合は並び替えは実行可能 ・クエリで開いた場合は並び替えは実行不可 2つ目 オブジェクトの「テーブル」に存在するテーブルについて フォームのボタン(VBA?)一つで 存在する全てのテーブルの内容をExcelに置き換えたいのですが その場合どうすればいいのでしょうか? イメージとしてはいわゆる一つ一つエクスポートでExcelに変換を一気にまとめて作成する感じです お願いします
1つ目 >テーブルと全く同じ内容のものをクエリとして作成 意味のないことすんな。 2つ目 >(VBA?) この時点で君にはむりぽ。
>>756 おまいは桐にしとけよ
許可作業って設定項目が、あらかじめ用意されてる
>>755 ずまん。助かった。ありがとう。根本的な勘違いをしていたようだね。
サンキュー
>>756 for each next と DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel11
とかを使えばできそうな気がするが、問題はExcel(2003)の最大行数が65,536という制限があるということだ。
遅かれ早かれそのアイデアは破綻するだろう。text 形式でexportするほうが無難といえる。
>>759 もう見てないかもしれないが、IN や BETWEEN〜AND という書き方もあるよー。
'1と2と3
=DCount("*", "商品", "商品分類 IN (1,2,3)")
'1〜3
=DCount("*", "商品", "商品分類 BETWEEN 1 AND 3")
762 :
699 :2008/06/13(金) 19:09:16
>>729 ありがとうございます。
ロケールの変更もしてみましたが、やっぱりダメでした。。
あ゛、確かにフォームなどのセクションには「詳細」とか「フォームヘッダー」とかいう名前が勝手に付きますね(汗)
セクション名を変えてみます、ありがとうございます!
>>730 こちらもまずそれを提案したんですが、現地でそこの国の人が各個人に割り振られたPCでのみ使うので却下されました。。
PS.遅くなってすみません、なぜかここ数日書き込み制限されてました。。
>>761 お そのほうがスマートだね。
こういったような条件式の指定ができるってのをもうちょっと勉強しなくてはいかんね。
ありがとう。早速書き直してみる。
764 :
名無しさん@そうだ選挙にいこう :2008/06/14(土) 21:00:54
品名、場所、数量というテーブルから 品名のグループ化、場所1の個数、場所2の個数 ↑というクエリを作りたいんですけど、まったくわかりません。誰か助けてください。
765 :
名無しさん@そうだ選挙にいこう :2008/06/14(土) 21:11:43
>>764 品名:[品名]| 場所1の合計:Sum(IIf([場所]="場所1",[数量],0))| 場所2の合計:Sum(IIf([場所]="場所2",[数量],0))
グループ化| 演算 | 演算
アクセス2003のスクロールバーについての質問です。 リストボックスにデータを沢山入れた場合にスクロールバーが出ますが そのスクロールバーのつまみを掴んでドラッグしてスクロールさせる場合、 デフォルトの設定だと「つまみを離す」までスクロールの結果が表示されません、 これを「つまみの移動中」にダイナミックにスクロールさせる設定等はあるのでしょうか?
サブ関数にテキストボックスの参照を渡して、 その関数の中で値を変えようとしているのですが、うまくいきません。 Call FuncA( Me![テキストボックス名] ) Private Sub FuncA(ByRef textboxTarget As TextBox) ' ↓ここで値を変えたいが、textboxTarget の値がNullになっている textboxTarget.Value="HogeHoge" End Sub ちなみに同じ様な事をリストボックスでやった場合には思った様に動きました。 Private Sub FuncA(ByRef listboxTarget As ListBox) <以下略> 調べてみると、テキストボックスの参照を得ようとした場合、 そのテキストボックスに入っている文字列が取得されてしまっているような気がします。 何かやりかたがおかしいのでしょうか? 正しいテキストボックスの参照の仕方をご教示願えないでしょうか?
770 :
名無しさん@そうだ選挙にいこう :2008/06/15(日) 21:43:58
普通に値が変化するけど。何をしたいのかがよく分からない
すいません。自己解決したっぽいです。。。
ここの質問者は自己解決ばっかりだな
しかもどう解決したのか書かないから、何の役にも立たないログになるな。
774 :
名無しさん@そうだ選挙にいこう :2008/06/15(日) 22:30:33
鳥つけないから本物かどうかも疑わしいが
txtboxTarget_ChangeイベントあたりでtxtboxTarget.Valueを参照したらNullだった。 FuncAを呼び出すタイミングをAfterUpdateあたりにしたら上手くいった。 こんな感じに解決したと想像。
>>773 で、結局おなじような質問が来た時に、答えなければいけない。
答えなくても自己解決します。
778 :
名無しさん@そうだ選挙にいこう :2008/06/17(火) 07:50:18
新たに顧客管理のDBを 自己解決しました。
すみません。 VBAのコードからプロジェクトにロックとパスワードをかけることは可能でしょうか? もちろんパスワードの入力にはInputBoxを使いますが、 配布直前にVBAのコードでロックをかけられたら修正が入るたびにパスワードを入力する手間を省けられるなぁと思いまして。 (なんとなく無理っぽな気はするんですが。。)
けっきょく変数をPublicにするメリットってのは、なに? いちど宣言すればあとはいちいち断り入れなくても使える、それだけ? いつでもあんたのモノをぶち込まれてあげる でも次に会うときはあんたとやってこともおぼえてないかも(プ そゆこと?
他から参照できる
782 :
名無しさん@そうだ選挙にいこう :2008/06/17(火) 20:50:29
逆にPrivateにすると同じ変数名で使い回しがきくんじゃね?
>>780 Accessの場合、他のフォームとか、クエリとかで使い回しする、もしくは、
どうように使える例があるので、
そういう場合には、Publicにするなぁ。ファンクションプロシージャみたくね。
本当にそのフォームだとかクエリでしか使い道がないようなものの場合
にだけ、Privateにしている。でも、メンテナンス性とか考えると、やはり、
Publicで宣言するケースが大半を占める。
また明日もどの場所でどんな値が放り込まれてるかわからない Public変数だらけのソースを追いかける仕事がはじまるお・・・
>>779 「SetVbaPassword」でググってみたら。
ありゃー?Public変数の話はDB板の方でしてたんじゃなかったかのう?
俺よりできないやつがうようよいるスレだ
だいたいポインタの概念ないBASICのくせに無理やりコンパイル出来るようVBA作るから、こういうメモリの取りあいが生じる 桐のようにインタプリタのまま使えば問題生じない
それは鶏と卵
ポインタの概念が無いとコンパイラは無理矢理になると? なんじゃそりゃ
実行しながらインタプリタがメモリ配置を制御できるでしょ
792 :
779 :2008/06/18(水) 11:24:52
>>785 ありがとうございます、こんなものがあったなんて!
ググッた結果が数件しかヒットしなかったのにも驚きです。
インタプリタがグローバル変数配置されてるメモリ避けながら、空きアドレスで以後のプログラム命令や変数確保を実行できるでしょ コンパイルしちゃってたら実行時にどのメモリアドレスで命令実行するか選べないでしょ、イベントドリブンとか時々よって実行する命令分岐するし
ああ、駄目だこいつ
日本語でおk?
理由は書けないけど(バカだから)
> インタプリタがグローバル変数配置されてるメモリ避けながら、空きアドレスで以後のプログラム命令や変数確保を実行できるでしょ 空きアドレスでプログラム命令を実行する?は? > コンパイルしちゃってたら実行時にどのメモリアドレスで命令実行するか選べないでしょ、 何を言っているんだか。メチャクチャだよ。 仮にそうだとしても、グローバル変数のアドレスもコンパイルした時点で選べなくなる、つまり問題にならないだろ > イベントドリブンとか時々よって実行する命令分岐するし だから何? で?「ポインタの概念」はどこ行った?
鶏と卵
すいません すごい初心者的な事をお尋ねしたいのですが、、、 ACCESSのテーブルの表示が#になって困っています フィールドの幅を広げると通常の表示に戻るのですが内容が全部入りきらない時に限り#になってしまうのですが 以前までは普通に#でなく通常のあるべき表示だったのですが最近急に#になってしまって 検索しても原因がわからないのでもしよろしかったらこの状態を直す方法教えていただけませんか?
801 :
名無しさん@そうだ選挙にいこう :2008/06/20(金) 16:42:08
802 :
名無しさん@そうだ選挙にいこう :2008/06/20(金) 19:38:51
ふつうはフォーカス時にはしないと思うが? コソボ1の変更後とかさ・・・
803 :
名無しさん@そうだ選挙にいこう :2008/06/20(金) 20:43:59
>>800 ツール>オプション>データシート>既定の列幅を変える
804 :
名無しさん@そうだ選挙にいこう :2008/06/20(金) 21:58:25
フォームのチェックボックスがOFFの場合は全部表示して、ONの場合は ONのものだけを表示するクエリを作りたいのですがうまくいきません。 IIf([Forms]![フォーム1]![チェック0],True,○○) ○○のところになんと書けばよいのでしょうか? 「True Or False」だとうまくいきませんでした。
805 :
名無しさん@そうだ選挙にいこう :2008/06/20(金) 22:16:44
>>802 えっと、ではどういうときに?
移動時とコンボ1が変わったとき?
>>804 1.もう一度IIf関数のヘルプをよく読む
2.抽出クエリって何なのかをもう一度よく考える。
>>801 サンプルを落として2000形式に変換してみたけど、WindowsXP上だと別にちらつかなかった。
サンプルは97形式だから、かなり昔のだよね。Vistaとか想定されてないんじゃね?
サンプルもちらつくんなら、手法の限界じゃないの。
サンプルは大丈夫だけどマイDBがダメってんなら、何か違うことやってるんじゃないの。
代替背景色使ってるとチラツクな
代替背景色…ってAccess2007からの新機能だっけ? そりゃ完全に参照先ページの対象外だな。 なんか2007の新機能使えば同じことがもっと簡単にできるとかないかね。
810 :
名無しさん@そうだ選挙にいこう :2008/06/20(金) 22:59:00
>>805 コソボ1の更新後処理 (AfterUpdate) で
コソボ2.Requery として抽出するとか
>>806 True Or Falseを直接抽出クエリに書けば全部表示になるんですが、
IIf関数を使用するとTrue だけとかFalseだけしか動作しません。
なぜでしょうか?
>>810 それでやってみたのですが、今度はどのコンボボックスを選んでも更新したときの項目が表示されるようになってしまいました。ちらつきのほうはまったくない。
>>807 こちらでは50件ぐらい追加して、同じような操作をしたらちらつきました。でも、操作できないほどではなくて・・・フォームの違いなんでしょうか?(サンプルでは絞り込むのに使うコンボボックスは同じですが、こっちのほうはレコードごとに分かれます)
814 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 01:35:15
>>812 より詳細にコードまで含めて提示するか
エスパーの登場に期待してください
815 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 01:36:56
816 :
807 :2008/06/21(土) 03:03:15
>>813 サンプルに50件追加してみた。ちらつかなかった。ただしAccess2003。
> (サンプルでは絞り込むのに使うコンボボックスは同じですが、こっちのほうはレコードごとに分かれます)
それは作りが違うんじゃないか。
サンプルで検証しても意味が無い希ガス。
どっかの炉に上げてみたら。
817 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 03:59:38
>>804 チェックボックスの更新時イベントで・・・
If Me!チェックボックス = True then
Me.Filter = "OnOff=True" 'OnOffフィールドがTrueのものだけ抽出
Me.FilterOn = True
Else
Me.FilterOn = False '抽出条件をオフ
End If
>>817 すでにフィルタの処理を利用しているフォームに追加したいのです。
その方法だと他の人が作ったものに書き加えないといけなくて・・・
クエリでやったら元をコピーしておけば簡単に直せますし、そちらの
方が便利だと思ったのですが、なぜIIfの中に入れるとうまく動作
しないのでしょうか?
>>804 >>811
819 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 11:27:22
>>818 IIf([Forms]![フォーム1]![チェック0],[OnOff]=True,[OnOff]=True Or [OnOff]=False)
820 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 11:37:01
>>818 Accessは表計算ソフトではありません
再問い合わせ (Requery) なしにクエリの再計算は行われません
>>818 [OnOff]を聞いてきて動作しませんでした。
>>820 Requeryはやっています。
822 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 12:02:02
>>821 いやだから[OnOff]はあんたの使用しているフィールド名を書かないとそりゃ動かんわな
いろいろ試した結果、-1 以上を抽出とかやることで解決しました。
気が付いたら、Accessばかりつかっていて、Excelを殆ど使っていなかった ことに気が付く今日この頃ですが、みなさんはいかがお過ごしですか?
825 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 12:06:38
結局Excelってデータ量が6万ちょいしか扱えないから、データの保管・InOutはAccessに任せ 他人にデータを渡す時だけExcelって方がスマートだと思うんだが
>>822 すいません。ありがとうございます。
動作しました。
こちらの方が後からみてわかりやすいので使わせていただきます。
ORとかで連結するときは比較するところも書かないと動作しないのですね。
勉強になりました。ありがとうございました。
>>825 些細なデータの処理まで、いつの間二やらAccessで作り込んでいたりするもん
だから、ちょっと最近、病的かなぁって思えてきちゃって。
まぁ、些細なデータながら繰り返し出力するものだから、これはこれでいいのか
なぁと思っているんだけれど。なんでもかんでもAccess病になりつつあるのです。
それふつう。 スキーマが明確なものは、Excel使う意味ない。 クライアントPC内でのデータ処理は基本Access。 Excelはワープロとしてしか使われていない。社内文書の大半はExcel。w Wordは、、、どういうときに使うんだろう?
>>804 に関して言えば、
フォームコントロールのチェックボックスと
なんらかのレコードフィールドのチェックボックスを混同してるのが
痛すぎ。
Wordったらあれだよ 409ポイントを超える特大文字がほしいときだよ
今更ながら、accessでシステム組んで なんでこんなにヌルポが流行ったのかが分かった フォームのフィールドの値を使って演算するクエリを作って完成、とおもったら 数値デリって空白のまま再クエリかけると、式が複雑すぎるか(ryのエラーが フィールド全部にで涙目でIs Not Nullを入力しつつ ああ、これがぬるぽか、と納得 ヌルポヌルポ
832 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 13:48:25
>>832 いろいろ答えてあげてる方々は、
んなことあるはずないと脳内で補正してるけどね。
834 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 14:07:07
access2002です。 フォームをいろいろ開いて作業しているときに、Alt+Tabみたいにしてフォーム間を移動出来たら便利だなと考えました。 Ctrl+F6でウィンドウ間を順に切り替えられるというので試したところ、フォーカスが移るフォームと無視されるフォームがありました。 フォーカスが移るフォームはウィンドウメニューにフォーム名が記載されています。 つまり、ウィンドウとして扱われるフォームとそうでないフォームがあると言うことです。 この違いの原因は何でしょうか?御教授をお願いいたします。一応ググりましたが分かりませんでした。
よく分からんが、プロパティウィンドウとかを「フォーム」と勝手に呼んでいたりはしないよな?
>>831 そんなただのNullで苦労してるようじゃぬるぽはもっと苦労するぞ
これでおk try { ... } catch (ぬるぽ e) { throw e;}
>>837 「わかりました」って言ってる
>>826 を読むと、
>ORとかで連結するときは比較するところも書かないと動作しないのですね。
だぞよ。
where条件とか、わかってないぽい。
みんな偉いよ。
Access VBA 使える人って需要あります? 派遣で色々な会社で働いて来たけど、私の行った会社ではどこでも Access使える人すごい!って感じだったけど、 ネット上ではAccessやVBAが使えたところで、ちょっと便利な人位にしか 思われないって意見が多くて、実際の所はどうなんでしょう?
会社によると思うけど、使えて当たり前って感じだな。 むしろ、それですごいと思われる会社(業界?)を知りたい。 転職するわ。
842です。 業界はIT系ではないです。 広告代理店や、物流などです。 自社で開発したシステムを売るような業界ではありません。
845 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 21:08:29
俺は情報システム部所属だけど部内では使えて普通、営業所の人間だとスゲーって感じかな
いいねーこの流れいかにも2chっぽくて
>>840 は蓮を透視できるエスパーさんに任せた。後はよろしく。
> Access VBA 使える人って需要あります?
うれしくない仕事が増えます
ほかに誰も使える人がいなかったら(ry
>>848 撃沈しました
850 :
名無しさん@そうだ選挙にいこう :2008/06/21(土) 22:08:19
前任者が開発したMDB任されてるんだけどゴリゴリのマクロで作られていてメンテが激しく面倒。 近々VBAで書き直そうと思ってる
851 :
840 :2008/06/21(土) 22:35:21
ごめんなさい。パスワードを忘れてました。wifr59i3です
アクセスのデータやマクロを共有フォルダーに入れています。 LANを組み、他のパソコンからも見れるようにしていますが、 access file block というfileができて、アクセスできなくなってしまいます。 何回か、データを置くフォルダーを変えて対処したのですが、繰り返しになってしまいます。 どなたか、素人にもわかるように、原因や対処法を教えてもらえないでしょうか? よろしくお願いします。
共有で開いてるの?
852です。 共有で開いています。 2つのパソコンで同時に開いても大丈夫なんですが、 access file block がデータのあるフォルダーにできると、排他的になってしまいます。 (ひとつからしか、開けなくなります) よろしくお願いします。
片方が更新中じゃねえのか?
素人にもわかるように教えてやる。 素人はDB共有とかしないほうがいい。
ごめんなさい。 access file blockというファイルが残ってしまうと、排他的になるようです。 別なフォルダーを作って、DBをコピペすると復活します。 レコードレベルでのバッティングは無いようです。 常時接続しておくしか、ないでしょうか? DBの設定をアプリ共有にすると、かなり遅くなり、気が進みません。 よろしくお願いします。
フォルダのアクセス権をチェックしてみて
>>851 XP上のAccess2003ではピクリともしなかった。
さすがにRequery時には一瞬チラッとはするが、コンボボックスの
上にカーソル置いたくらいでは微動だにせず。
Vistaで2007ってゆーのやめれば解決すると思われ。
852です ファイルのプロパティは、読み取り専用のチェックボックスが半分点灯しています うまく言っている時は消灯しているような気がしますが。。。。。 アクセス権はフルアクセス可能で設定しています よろしくお願いします
フォルダのアクセス権は共有のアクセス許可とセキュリティの2つがあるよ
access file blockってのはAccess.LockFileじゃなくて?
852です おっしゃるとおり、Access.LockFileです。 よろしくお願いします。
すみません。 フォルダーを共有にして、DBを非排他的にしてます。 セキュリティはどこを見ればよいのでしょうか? よろしくお願いします。
>>865 フォルダのプロパティで「セキュリティ」のタブ
積年の苦労がやっと解決する兆しが見えました 明日、チャレンジしてみます ありがとうございます
念のため・・・もう一個は「共有」タブ→「アクセス許可」 それから一応データベースファイルのセキュリティも確認してね
.ldbというか2007だから.laccdbかもしんないけど それDB開いたら必ず作られるもんだから。
852です そのファイルが消えずに残って、よそのPCからアクセスできなくなるのですが。。。 アクセス固有のファイルでしょうか? よろしくお願いします
>>859 バージョンを間違えました。2003です。
>>870 =852
【1】\\Domain\User1が使用開始→ \\Domain\User1が所有者の.ldbが作成される。
【2】その後で\\Domain\User2が使用開始→ 既存の.ldbに対して変更が行われる。
【3】ここで\\Domain\User1が先にDBの使用を終了→ \\Domain\User2が使用中のため
.ldbの削除は行わず変更のみ行われる。
【4】\\Domain\User2がDBの使用を終了→ .ldbの所有者が\\Domain\User1のため
アクセス権が適切でないと.ldbの削除に失敗する。
・・・・という事が起きているような気がするんだが。
(ひょっとすると\\Domain\User1は\\pc1\systemかも知れないが理屈は一緒かと)
レスありがとうございます。 自動オフなどの際に、誘発されている気がしてました。 おっしゃる通りのことが起きていると思います。 どうしようもないことなのでしょうか? それか、User1が常に接続していれば、防げるということでしょうか? よろしくお願いします。
対症療法としては、最初にDBを使用し始めたユーザーが最後に終了すればOKのはず。 根本的に直す方法はネットワーク構成によって手順が異なってくる。 (ドメインコントローラーの有無など)
レスありがとうございます ドメインコントローラーは異次元空間です 簡単にはいかないことがわかりました 今後は終了の順序に気をつけたいと思います ありがとうございました
2007使ってるんですけど、ボタンとかの見た目って自分の好きに変えられないの? 正直デフォの奴ってださすぎて萎える
OS:XPSP2 Access:2003 初めてAccessVBAで開発することになった新卒プログラマなんですが、 access使ってexcel帳票を取り込んだ時にブックが共有に設定されていたら、 排他モードに変更するという処理はできますか? ちなみに createObject("Excel.Aplication") WorkBooks.open でブックを開いた後 ActiveWorkbook.ExclusiveAccesを実行するとExclusiveAccesメソッドでエラーが出てしまいます
CreateObject()で作成したオブジェクトで修飾し忘れてるだけじゃないか と疑ってみるテスト
ExclusiveAccesだからじゃないの?
881 :
878 :2008/06/24(火) 23:07:14
>>879 レスには記述していないだけで実際はオブジェクト名.〜となっています
OpenしたブックをSaveAsメソッドで保存する際にAccessmode:=xlExclusiveにすれば
いいんじゃないかと試しましたが、実行時にSaveAs自体でエラーがでました。
ExcelVBAと比べてAccesVBAではExclusiveAccesやSaveAsメソッドが
そもそも使えないんじゃないか、なんてことはないですよね?
882 :
878 :2008/06/24(火) 23:09:57
>>880 ブックを共有にして試してみましたが失敗してしまいました
open自体は成功しています
883 :
878 :2008/06/24(火) 23:12:18
>ExclusiveAccesだからじゃないの? すみません意図を勘違いしてました 実際のコードは"ExclusiveAccess"とちゃんと記述してます スペルミスはしてないです
今Accessから共有ブックにコード流したが、何の問題もなく 排他に変更できた。 共有じゃないブックに流すとエラーになるが(当たり前)。 晒していない部分のコードが限りなく怪しいので、きちんと晒すか エスパー限定で募集汁。
DateAdd の 「d 日」 と 「w 週日」 って何が違うんですか?
886 :
878 :2008/06/25(水) 19:29:24
>>884 晒したいんですが会社から2chにアクセスできないし、会社情報は持ち帰れないしで
断片的に覚えてる部分を書き連ねるしかないのです
一応今日の午前中に問題を解決できました
オブジェクト.WorkBooks.Openする時にReadOnly:=Trueとしていたのがエラーの原因でした
外したら上手く動作してくれました 皆さんご迷惑をおかけしてすみませんでした
解決した方法を報告するのは、良い質問者。 「自己解決しますた」のみは、悪い質問者。 質問しっぱなし放置は、桐にしとけ。
888 :
885 :2008/06/25(水) 21:10:43
?dateadd("w",1,#2008/6/28#) →2008/06/29 ?dateadd("d",1,#2008/6/28#) →2008/06/29 この2つって何が違うんですか? 同じ結果を返しているように思えるんですが。
yとdとwは同じ。
英語の開発者用ヘルプに違いが書いてあるよ
891 :
名無しさん@そうだ選挙にいこう :2008/06/26(木) 07:31:36
Access2000です フォームを立ち上げるときに 「******.*****」というメッセージの値の入力を促されるダイアログが表示されるのですが ******.*****という記述の部分がVBAのコード中にありません。 どうデバッグしていけばいいでしょうか
>>891 使ってる連結クエリにパラメタが足りないとか、
そんな程度の事じゃないか?
893 :
名無しさん@そうだ選挙にいこう :2008/06/26(木) 22:14:09
Access2007です。(XP) Accessで、エクセルのVLOOKUPみたいなことはできますか? 商品名と商品コードの2列からなるテーブルを用意しておき、 別のテーブルで商品名を入力すると、隣のセルに商品コードが自動的に 出るようにしたいのですが、可能ですか? エクセルなら、VLOOKUPで簡単にできるんですけどね。。。
894 :
名無しさん@そうだ選挙にいこう :2008/06/26(木) 22:14:48
続いて質問します。 Accessのルックアップウィザードで、データの形式が変わってしまいます。 商品名(テキスト形式)の一覧テーブルがあり、 販売記録のテーブルで、ルックアップウィザードを使って商品名を入力できるようにしました。 そして、クエリを使って、商品Aだけの販売履歴を抽出したいんです。 クエリの抽出条件のところに "商品A" と入力したのですが、 「データ形式が抽出条件と一致しません」みたいなエラーだ出ました。 販売記録のテーブルを見てみると、 なぜか商品名のデータ形式が「数値形式」になっています。 最初は「テキスト形式」で作ったはずなのですが。。。 いったん両テーブルのリレーションを切り、もう一度最初からルックアップウィザードをやり直したところ、 やはりそれによって「テキスト形式」が「数値形式」に変わるようです。 なぜでしょう?? 商品名一覧テーブルのキーになっている、商品コードが数字だからでしょうか? キーの形式が適用されてしまうのでしょうか?
895 :
893=894 :2008/06/26(木) 22:16:38
VBAとかはまったく分かりません。
>>893-894 >エクセルのVLOOKUPみたいなことはできますか
Excelより簡単。ただし、テーブルだけでやろうとしなければの話。
テーブルは只の入れ物だけと思っていたほうが無難。
894の方
IDが割り振られているのだろう。
どういうふうにルックアップフィールドを生成したかは知らんが。
自分でキーとなるフィールドを指定した覚えがないのなら
集合値ソースを見てみろ。
数値が振られていないか?
897 :
名無しさん@そうだ選挙にいこう :2008/06/26(木) 22:57:52
>>896 >>テーブルだけでやろうとしなければの話。
他に何を使ったらいいのでしょう?
>> 数値が振られていないか?
明日、確認してみます。
もしそうだとしたら、クエリで抽出する際に、
"商品A"ではなく、IDの方を入力してやればいいのでしょうか?
>他に何を使ったらいいのでしょう? 普通はフォームを使うと思うよ。 >"商品A"ではなく、IDの方を入力してやればいいのでしょうか? IDと書いたが、商品コードがキーになっているんだろうね(つまり商品コードで抽出)。 「列数」が2で、「連結列」が1、「列幅」が0cm;0以上の数値(恐らく2.54cm)になっていたら まず間違いなし。 ※マルチよくない
899 :
名無しさん@そうだ選挙にいこう :2008/06/26(木) 23:50:32
Accessのレポートに張り付けたExcelのOLEオブジェクトのシートに 値を書き込みたいのですがどうしたらいいのでしょうか Access2000です。
デザインビューならダブルクリックで編集できるようにならなかったっけ?
901 :
名無しさん@そうだ選挙にいこう :2008/06/27(金) 01:14:16
いえ、VBAで値を書き込みたいのです。 説明不足ですいません
罫線引くのが面倒くさいときにExcelで作成して その上にテキストボックスなどを重ねることはよくやるが、 そういうことではないんだろうなぁ。
>>899 激しく普通にそのOLEオブジェクトのメソッドを呼べばいいじゃないか。
【 システム環境 . 】 WindowsXP, Access2000 【 VBAが使えるか .】 ちょっとだけ 【 VBAでの回答 】 OK 【 検索キーワード 】 ACCESS 権限 おたずねします。 昨日までは問題なく起動できていたアクセスファイルなのですが 今日開こうとしたら「MSysAccessObjectsの読み取り権限がないので、レコードを読み取ることができません。」と エラーメッセージが出てファイルを開けなくなってしまいました。 パスワードが設定してあって、ファイル実行→パスワード入力→エラーメッセージとなります。 やったこと。 ・ツール→データベースユーティリティ→最適化/修復 × ファイルを開くときにパスワード聞いてきて、入力したらまた同じメッセージ。 ・新しいMDB作ってインポート × インポートファイルを選択したときにパスワード聞いてきて、(以下略 権限設定ファイル(?)などは見当たりません。 ググッてもセキュリティを破ることになる為でしょう、まったく情報が見つかりません。 作成した人間が退社して連絡が取れません。 パスワードはそのままでいいのですが権限を解除する方法はないでしょうか。 作り直すにしても中のTBLデータが取れないので困っています。
905 :
899 :2008/06/27(金) 15:03:02
どんな感じにメソッドを呼び出せばいいんでしょうか
>>904 Access2000 のパスワードなら一瞬で解除できるだろ
909 :
904 :2008/06/28(土) 11:02:41
>>906 イヤンデスメロン
>>907 パスワードはわかっているんです。
パスワードを入力した”あと”に「権限がない」エラーが出るんです。
>>909 じゃ、他のPCにコピーして、それを開け
911 :
904 :2008/06/28(土) 11:59:51
>>910 試してみましたが状況かわらずです
ちなみに当該PCでシステムの復元試してみたのですが
ファイルの状態は変わりませんでした。
◆◆◆◆◆毎日新聞社による日本人女性への誹謗中傷◆◆◆◆◆
・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する
※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです
◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
http://www9.atwiki.jp/mainichiwaiwai/ ◆毎日新聞問題の情報集積wiki
http://www8.atwiki.jp/mainichi-matome/ つまり日本国民は
http://www.vipper.net/vip552788.jpg
>>904 どう考えてもMDBの破損だから、
アキラメロン
>>904 典型的な破損。
金払ってでも直す価値のあるファイルならAccessFIXあたりでググって専門業者に頼め。
>>904 今度からは、UI部分とデータ格納部分は、たとえパーソナルであっても
分けた方がいいですよ。
今度からは権限の有無がどうこう以前にいつHDが飛んでもいいように バックアップを取っておくのがいいですよ。
質問させて頂きます。
却下する
自己解決しました。
>>919 * *
*出た!自己解決w+
n ∧_∧ n
+ (ヨ(* ´∀`)E)
Y Y *
921 :
904 :2008/06/30(月) 09:29:16
>>913-915 さんくす。
やっぱり無理みたいですねぇ。
週末ずーっと調べてたのですがほとんどが「DB破損である」というものでした。
あきらめて作り直す方向で行きます。
FORMとかはともかくデータが消えたのが痛い・・・。
>>921 もう遅いかも試練が、新しいMDBを作ってそれから壊れたMDBテーブルのインポートは試みた?
(念のため壊れたMDBをコピーしてからやってみることをお勧め、
とりあえず1日1回以上バックアップは必須だよん)
>904 を読んでないのか。
クエリで数値はSUMで合計できますが 同様に文字列を連結する方法はありませんか?
&じゃないの?
式:[フィールド名1] & [フィールド名2] & "aaa"
[名前], [数量] りんご, 5 みかん, 10 たろう, 6 とあった場合 select sum([名前], sum([数量]) from テーブル の結果で りんごみかんたろう, 21 という結果にしたいのです。
式1:[りんご] & [みかん] & [太郎], Sum([数量])は?
>:[りんご] & [みかん] & [太郎] それフィールド名じゃないでしょ
>>929 SQLじゃできないんじゃないかな?
VBAだとこんな感じかもしれない。
Sub test()
Dim db As Database
Dim rs As Recordset
Dim namae As String, suuryou As Long
Set db = CurrentDb
Set rs = db.OpenRecordset("テーブル1")
Do Until rs.EOF
namae = namae & rs!名前
suuryou = suuryou + rs!数量
rs.MoveNext
Loop
MsgBox namae & "," & suuryou
End Sub
ああ、この場合でもメモリを解放する必要があるのか
>>932 のMsgboxの次の行に以下を追加で
rs.Close: Set rs = Nothing
db.Close: Set db = Nothing
934 :
名無しさん@そうだ選挙にいこう :2008/07/03(木) 23:25:27
フォームを普通に印刷すると終端に細い横線が出ますが、 これ、何とかして印刷させないようにする方法は無いでしょうか。
936 :
934 :2008/07/03(木) 23:52:21
事故解決! フォームのプロパティ→書式→区切り線 を"いいえ" にすればOKですね 請求書を作ったんだけど余計な線が表示されて鬱陶しかったのです
もはや自己怪傑はこのスレの伝統芸能
938 :
名無しさん@そうだ選挙にいこう :2008/07/04(金) 00:02:51
黙々とPCに向かってたらサッパリだけど、誰かに話かけたら途端に自己解決ってよくあることぢゃん。 ひとまずは次スレのテンプレに『自己解決したら内容書くべし』って書いたらよろし。
>>939 俺の場合悩んで悩んでそれでも解決できない時はあまり残業しないで帰っちゃうけど
一晩寝ると次の日は頭がスッキリして意外と早く解決できちゃったりする
一晩寝たから解決したんじゃなくて悩んで悩んで悩みぬいて頭が混沌としたところで寝るから 寝ている間に整理されて解決するんでただ寝れば解決するってわけじゃないので誤解の無いように。
一晩悩んでスッキリ♪ さて、何だったっけ・・・?
945 :
名無しさん@そうだ選挙にいこう :2008/07/06(日) 16:34:01
【 システム環境 . 】 WindowsXP, Access2007 【 VBAが使えるか .】 いいえ 【 VBAでの回答 】 否 かなりの初心者の学生なんですが、 自宅でAccessをインストールして勉強をしていたら エラーがでてどうしようもないんで質問させてください。 フォーム作成でコンボボックスを作成して項目を選択したら 連鎖的に他のやつも表示されるようになりますよね? それが自宅でやってみたらどうもうまくいかないんです。 検定の練習問題集なので、ネットで配布されている回答と照らし合わせて やってもどうもうまくいかないので、 なにか設定に問題があるような気もするのですが。 「フィールドを更新できません」のようなエラーが出ます。 お願いします。
>>945 それだけの情報じゃエスパーじゃなきゃ分からない
947 :
名無しさん@そうだ選挙にいこう :2008/07/06(日) 17:01:28
>>946 ごめんなさい。事故解決しました。
別のテーブルの方のコントロールソースを
選んだらなんかできるようになりました。
理解はしてませんが解決したのでよかったです。
理解してないのか・・・がんばれよ、学生。 しかしいきなりAccessから入るんだね。 データベースの基礎とかやってからAccessやればもっと理解できるのに。
>>949 RDBMSの基礎からはいると、
ACCESSは使えないって結論が出るだろ。
適材適所だろ。 Access だって、RDBだ(MS部分が心許ないが。) ただ、例えば SQLite を無茶に使う奴はなぜかいないが、 Access は無茶に使われやすいだけのこと。
初っ端からSQL直書きでデータベース概念理解できるもん? 俺には無理だ
953 :
sage :2008/07/08(火) 09:59:00
E-R図
↑sageマチガッタ
一部の天才を除いて、ほとんどの人は理論と実践を平行して進めることが 一番効率よく覚えられる方法だよ
>>955 そそ。
で、ここでもよくある系の質問て、基礎を
正確に理解する必要があるってカンジのが多い。
リレーション、データ型、where条件、インデックス、配列
えーと他にもあると思うけど、こういう基礎的なリクツ。
こういうのを理解してないと、
Accessを利用した簡単なシゴトも、振れないことが多いよ。
集計だって、結果が違っちゃうからね。
螺旋階段登るみたいなのがいいかな、と思う。
なんか一個作りながら。ね。
テキストボックスを作成するとラベルが付いてきますが、このラベルだけを動かす事はできないのでしょうか? ラベルと一緒にテキストボックスも移動してしまうのですが。
ラベルだけ切り取って貼り付ける。
手が、パーじゃなくて1になる所を探せ
>>958-959 ありがとう。
Access2007を使ってるんだけど、ラベルを選択して左上の四角マークみたいなところに
カーソルを合わせるとラベルだけ移動することができました。
これって前のバージョンでもできたっけ?
そんなのずっと前のバージョンでもできたよ。
2000でもできてるけどな
その前もできたような気がするけどさすがに覚えてない。
2.0はできた。その前は知らない。
すでにいろいろな抽出条件の入ったテーブル作成クエリの[店番]フィールドに 複数の店番を追加して抽出条件としたいと思ってます。 [フォーム1]のテキストボックス[検索ボックス]に 店番をカンマで区切って入力すると、 不可視のテキストボックス[抽出ワード]に 抽出条件文が表示されるようにしました。 Private Sub 検索ボックス_AfterUpdate() Dim strFilter As String Dim strEle() As String Dim i As Integer '最後にカンマつけてたらはずす If Right(Me.検索ボックス, 1) = "," Then Me.検索ボックス = Left(Me.検索ボックス, Len(Me.検索ボックス) - 1) End If strEle = Split(Me.検索ボックス, ",", Compare:=vbTextCompare) For i = LBound(strEle) To UBound(strEle) strFilter = strFilter & " or " & Val(strEle(i)) '店番は3桁だが数値にする Next strFilter = Mid$(strFilter, 5) Me.抽出用ワード = strFilter End Sub
>>965 です。
以前フィルタを使用してフォームで表示させていたので
それをちょっと改良して上記のようになりました。
[フォーム1].[検索ボックス]に下のように入力すると
01,002,004,
[フォーム1].[抽出ワード]に下のように表示されます。
1 or 2 or 4
この 1 or 2 or 4 の部分を抽出条件としたいのです。
テーブル作成クエリの[店番]フィールドの抽出条件に
[Forms]![フォーム1]![抽出用ワード]と入れて実行すると
「式が正しく入力されていないか、複雑すぎるために評価できません。
たとえば、数式に複雑な要素が多すぎます。
変数に式の一部を割り当て、式を簡単にしてください。」と
エラーが出ます。
抽出条件に直接 1 or 2 or 4 と入力すると問題ないのですが
表示されたものを使用するのはどうすればいいのでしょうか。
クエリデザイナではなくSQLビューに変えてみると問題が見えてくるはず
>>967 見えました!
なんとかなりそうです。感謝。
外出だったらすまんが 今access2003で稼働してるMDBがあって、たまたま出先で2007の入ったPCで動かしてみたらエラーが コンパイルエラーで修正候補:識別子というダイアログが出るやつ 調べてみたら、先頭に全角数字が含まれるテーブル名やフィールド名があるとアウトみたい・・・ うわああああああああああああああああああああああああああああああ 俺オワタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww 逃げていいスかwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
ORACLEじゃないんだから先頭1文字は数字禁止とかなかったはずだけど。 まあどっちみちフィールド名に半角数字と全角数字が入り乱れて 全然統一されてないDBをいじくる仕事はもういやだお・・・
ご愁傷様。 でも、そのバグ?は2007特有ではないはず。 少なくとも2000の時代には言われていた。 そんな既知のバグ、修正してくれればいいのにね。
2003で作ったら何の問題も無く動いて 2007でそのファイルが動かない孔明の罠・・・ 俺、来週職場のPCがOffice2007に入れ替わった後彼女にプロポーズするんだ!
この問題は2000→2000間でも起こった。 開発した環境では動作しても、 違う環境では動作しなかったり。 2バイト文字は使わないのがプロの間では基本らしいが、 最低限、 ・先頭2バイト数字の使用禁止 ・予約語の使用禁止 だけは心がけた方が吉(他にもあるかもしれないが)。
>>969 俺、2000の頃から作っている奴は、2007で読み込ませてもエラーでないお
テーブル名からフィールド名まで日本語だけれどね。
ただ、最近、MySQLをデータ置き場にしたから、MySQL内のテーブルとか、
フィールド名は英語にしてあるけれど、クエリの際にリネームして、互換性
を維持してある。
2007で作ったMDBやACCDBにそっくり移動させてみて検証の必要性はあ
ると思いますよ。
>>975 なんとも、いい加減な回避策ですね。とても、工学的とはおもえない対処法。
非常に根本的で完璧な対処法です。
プロシージャ名じゃなくてテーブル名・フィールド名の話だった筈だが
今までずっと2000だったんだけど、2007を使い始めて1ヶ月くらいたった。 みんないろいろ言ってるけど、2007、いいね。 リボンのわずらわしさに慣れれば、すごく、いいね2007。
>>979 俺まだ2000使ってるが、具体的にどこがいい?
その「リボンのわずらわしさ」が最大の難点じゃないの? 最大の欠点に慣れてしまえばすごくいいってのは、、、いいのかそれw
>>981 Accessの場合、リボンがあまり煩わしくないかもしれん。特殊なソフトウェアだからね。
これまでも、別段メニューからどうこうというやり方ではなかったし、リボンになったとこ
ろで、これは直ぐに慣れるよ。煩わしさも実のところ、感じたことがない。逆にExcelやら
Wordやらは頻繁にメニューやボタンを使うし、深い慣れがそこにあるから、リボンはわず
らわしさ、3倍増しといった感じだ。
>>983 一理あるけれど、それあくまで「別段メニューからどうこうというやり方
ではなかった」人の場合だしょ。
たしかにエンドユーザはメニューあんま使わないかもしれないけど、
開発者もしくは兼ユーザの場合どうなんだろ。
自分はメニューけっこう使ってるなあ。特にツールメニューとか
消えたら、慣れの関係で致命傷負う希ガス。
ショートカット覚えろって話なのかもしれないけど、メニューって
そもそもショートカット覚えらんない人向けのインターフェイスじゃ
なかったんかなあ。。。
ユーザー設定ツールバーのボタンにショートカットキーを割り振ってたんだが、 ショートカット一発で済んでいたのが、リボン(アドインタブ)では3ストロークを要する。 煩わしいにも程がある。
>>991 じゃ、文句言わずに3ストロークで我慢しろ
for i=993 to 1000 i=i+1 next
995 :
名無しさん@そうだ選挙にいこう :2008/07/17(木) 19:48:40
自宅から書き込めないので会社から質問します。 ACCESSを使って仕事で使うデータベースを作ろうと考えていました。 そこでACCESS入門書を購入しました。最初は簡単に作れるものと思っていました。しかし、読むにつれて、基本が分からずに作業をはじめると、トンデモナイことになりそうな予感がしました。 そこで、基礎から勉強しようと考えて、正規化、SQLとは?、DAOとは?、RDBMSとは? ER図とは?などを勉強し始めました。 ところがER図や正規化の意味や使い方は理解できたのですが、そこから先がさっぱりわかりません。 以下に分からない点を質問させていただきます。 以下の理解は正しいでしょうか? 1.RDBMSはデータベースを作ったり管理するシステムで、SQLという言語で人が動かすことができる。 2.Microsoft ACCESSのRDBMSはJETエンジンと呼ばれている。 3.JETエンジンを人が直接動かすにはADOやDAOというMicrosoft独自のSQL言語を用いる。つまり、RDBMSとSQLの関係が、JETエンジンとDAO(ADO)にそのまま当てはまる。 4.とすると、ACCESS用のVBAの位置づけは何か?(最初はVBAでJETエンジンを人が直接動かせるのかと思っていました。) よろしくお願いします。
>>ACCESS用のVBAの位置づけは何か 使いたければ使ったほうがいい便利な小道具 >>VBAでJETエンジンを人が直接動かせるのかと それも可 ただaccsessを使うならもっと楽な方法が
SQL言語で動く人スゲェ
1000 :
>>995 :2008/07/17(木) 20:15:19
>>996 さっそくのご教示ありがとうございます。
さっそく質問なのですが、テーブル、クエリー、フォームとならんでモジュールというのがあったと思います。VBAはそのモジュールの中だけで使うプログラム言語ですよね?
そのVBAを使って、人がJETエンジンを直接動かせるとなると、VBA=ADO(DAO)=SQL ということになると思いますが、この認識は正しいですか?
でも、ACCESSの入門書にSQLクエリーというのがあったような・・・・
どうすれば上記のような基本事項が理解できるようになるのでしょうか・・・・
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。