Access総合相談所 29
■ このスレッドは過去ログ倉庫に格納されています
ACCESSに関する質問はこちらへ ▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━ ★ 質問内容は具体的に書いてください。 業務上の守秘義務も大事ですが、貴方の所属組織を特定できるほど、特異な業務・システムは滅多にありません。 作りたいものの内容を隠しすぎないようにし、列名、データ値を適当に変更して例示するなどしましょう。 ★ 事前にGoogle等で調べられる範囲は調べてください。 ★ 完全初心者はまず、新規作成テンプレから「NorthWind」を開いて、一通り触ってみてください。ACCESSの概念を理解する もっとも簡単な方法です。 ★ お金の管理でシステム設計ミスが会社経営に重大な支障が予見される場合は、パッケージソフトに誘導する場合があります。 格安なソフトもあるので設計に取りかかってから悩む前に、市場調査も行なってください。 ★ アドバイスを貰ったら、必ず経過・結果の報告をして下さい。 ギブアンドテイクで情報を共有しましょう。 ▼━初心者用質問テンプレ ━━━━━━━━━━━━━━━━━ 【Windows】 7, 8,10 【Access】 365,2013,2016,2019 【作りたいものの業務分野】 販売管理,買掛管理,営業予算管理,営業実績管理,生産管理, 財務管理,労務管理,学術研究統計,文字格納を主体としたDB,その他() 【あなたのスキル】 LV1:完全初心者, LV2:ACCESSの基本要素(テーブルやクエリーなど)の役割を知っている LV3:VBAが打てる 【どのオブジェクトに関する質問か】 テーブル,クエリー,フォーム,レポート,サブフォーム(サブレポート),リレーション,VBA 【やりたいこと】 (質問によっては各テーブル名と列名を例示) (クエリーの場合は、左上の「表示」を押し”SQLビュー”に変更して表示される”SQL文”を貼り付けると回答者がわかりやすい) (得たい出力結果や挙動) 【エラーメッセージに関する質問】 ・エラーメッセージの内容 ・windowsは32bit版か64bit版か 前スレ Access総合相談所 28 https://mevius.5ch.net/test/read.cgi/bsoft/1535638568/ >>523 0.25ずつ増えていく感じで Sub Macro1() For i = 1 To 10 ActiveSheet.Shapes.AddConnector(msoConnectorStraight, i * 10, 1, i * 10, 100).Select With Selection.ShapeRange.Line .Visible = msoTrue .Weight = i * 0.25 End With Next End Sub >>526 >>527 シートの部分とかが変わるんですかね コードは書けないので日本ので書きますが 例えば 詳細 に線を書く 太さ1 詳細 に線を書く 太さ2 詳細 に線を書く 太さ3 詳細 に線を書く 太さ4 といった感じのコードをいただければ太さを色々変えて印刷して試せそうです 太さは0.25や0.5などの指定はできず1〜(何まであるのでしょうか?)の指定になるんですよね? ACCESSを数人の小規模で使う場合 データベースとフォームをわけて 安いNASにデータベースをおいてそれにアクセスするような感じで使うんですか? よその会社の事務所みると3台ほどPCあってACCESSでやってるとこあるみたいですがそんな感じでしょうか? ちなみに複数従業員で使う場合 ランタイム版を使えばライセンスの購入は不要なんですよね? なんでACCESSだけランタイム版があるんでしょうかね 細い線に関してだが 線を二本配置してそれぞれ黒と白にする 位置を入力して任意の線にする、とかは駄目なんだろうか? 例えば1の黒線書いて1の白線を上にかぶせて0.5になるようにするとか 目が痛くなりそうで できるかは試してないがひとつのアイデアとして 細線と書いてあるのはヘアラインといわれるやつで 太さ設定なしでプリンタの最小の細さで印刷されるらしい VBAで線書くのってレコード表示ごとに書けたっけ? うろ覚えで書いたけど、VBAで処理したのは最終段の合計枠を強調するために 一ページで終わる場合と複数ページの場合でだった スマン 複数ページの場合は他のページの合計枠を細線にしてただけの処理だった あと、実際にレポート上に7本線引いてVBAでBorderWithに小数点使ってみたが 0 0.5 → 細線(0ポイントと同じ) 0.85 1 1.3 → 1ポイントと同じ 1.7 2.2 → 2ポイントと同じ線を引いたんで、四捨五入だか五捨六入してる 素直に0〜6ポイントで選ぶか、破線や色変えでの対応しかない? 何のデータも無いレポートに線を引くVBAは http://www.ps-wing.com/vba/sample009.html ここに有った 但し横罫線38cmに成ってるからA3ヨコ用 その部分を変えれば他のサイズでも応用可 縦罫線も引いてるからタテとヨコの場合で違いが出るか?とかも調べられるかも >>533 うちのでは標準の線1が10pxくらい 5pxで1の半分くらいの線になった 他の掲示板にあったやつだけどこれどうやるの? Me.Line(0,0)-(0,0)でライン書く座標を可変にするってことだろうけど 『レポートで任意の位置にこれらを配置するにはどのようにしたらよいでしょうか? レコードがない場合は縮小印刷するフィールドを含みますがそのように細かいしては不可能ですか? 見出し ______________ 7px フィールド1 フィールド2 ______________ 1px フィールド1 ______________ 1px フィールド1 フィールド2 ______________ 1px 』 任意の線なんてEXCELでオートシェイプ書いてコピペすりゃ一発だろとおもってやってみたが OLEサーバーがなんたらとかでてうまくできないな 0.5はエラーOK押しまくったらできるのはできた でも0.25はなぜか長方形に変換されてしまったよ >530 ランタイム版があるのはaccessはデータベースに入力するソフトじゃなくてデータベースを作成するソフトだからじゃないかな そういう意味ではワードやエクセルよりもプログラミングソフトのほうが近いかと実際に高度なものはプログラミングソフトで作っていくからね レポートでレコードごとに仕切り線つけようと思って一番下に配置しても微妙にずれるというかぴっちりならなくないですか? 交互に色が変わるやつを設定してるとそれとズレているのでよくわかります どうやってきれいに レコード1 ______ レコード2 ______ レコード3 ______ とラインを引くのでしょうか? 詳細の設定などで余白ができるようになっているんでしょうか? 状況が不明だが、例えばレコードを高さ0.7cmのテキストボックスで貼り付けて 直線を上から0.7cmに配置してるけど微妙にズレる ということかな? テキストボックスの枠線は透明にしていて、直線は黒とかにしてるが僅かにズレてるのが判るとか? 直線を0.695とか微調整するしか無いんじゃね? エプソンのインクジェットで印刷したやつ。 ラベル貼り忘れたけどいちばん上が黒の実線 細線ね。 点線はaccessだと、どうやらそのまま点線になるのでダメだな。 excelの一番細かい破線を会社の複合機で印刷すると細い直線になるのでよく使うんだけど。 黒から一段二段グレーに傾けると 存在感のない線になる。 手間かけないならこれが一番手っ取り早いんじゃない? https://i.imgur.com/pAqooeP.jpg >>540 手持ちのブラザーのモロクロレーザープリンタでは細線はほぼ印刷されませんねえ(600dpiで印刷) >>539 一般的に詳細の高さってフィールドよりは少し高くするものですかね? >>539 どこにテキストボックスがあるか判断するために透明ではなくデフォルトで試していました Accessレポートの罫線はVBAで引くんじゃないの? Lineメソッドだっけ >>539 のケースで、極端な例で言うならテキストボックスの高さを0.8cmにして 直線の位置は上から0.7cmとかなら多分ズレは見なくなると思う システムの特性でインチ基準なので、端数で設定しないと思い通りの位置に成らない ことはままある 印刷済み用紙に位置合わせする時などはテキストボックスの内部余白を調整して 合わせるとかまである >>544 MS的にはレコードごとに線を引く、とかいう自体がイレギュラーって認識なんだろうか 調べてたら質問掲示板に VBAで https://i.imgur.com/0aLCOcX.png (改行多すぎてコード貼れなかった) としてレコードごとに引くというのがあったが それでもずれるとかかいてあった ・ヘッターとの仕切り線の左端の下部分がかけてしまう ・詳細の奇数レコードと偶数レコードで線の幅が変わってしまう(微妙に詳細の一番下にラインがない) ・レコードの仕切り線の太さを50にしてみたら顕著に太さが違う(太くなっている線は支点の左上がかけている) 画像をアップしました https://imgur.com/vKXKqky らしい >>544 詳細の高さって配置したフィールドぴったりじゃなくて 無駄な余白がでても上下1mmほど広めにしたほうがいいの? いや、それはお好みでとしか レコードの内容次第もあるだろうし 文字だらけでごちゃごちゃしそうなら余白は大目にとかもあるし 大体が、アメリカ人の書類っていちいちレコードごとに横罫線引かんだろ テンプレートとか参考にしてもそんな例はほとんど無いんじゃね? 無駄なところに余計な労力は費やさないようにしましょう イギリス人がどうだかは知らん 因みにテキストボックス高さ0.42cmフォントサイズ10.5でもなんとか読めるんで それ基準でどこまで高く・大きくするか見繕ってる 要件のうちでその書類に 要するボリューム等々もあるんで、これがベストってのは中々決めらんない >>547 俺はフォントサイズ8でやるときもある ドコモとかヨドバシとかの明細もそんなもんだから そうしないと用紙に収まらなくなるってほど多いのあるからな >>547 わかる。作文用紙の影響からか 日本人、升目大好きだよね。 稟議書がexcelとか、どうかしてる。 古くは障子を使って計算してた史実もあったそうで。 accessのレポートのレイアウトは基本的にはアバウトに考えたほうがいい。 いちおう、連帳伝票の印字を割り付ける程度の精度はあるけど。 欧米はタイプライター文化だから文字のラインが揃ってるのがデフォで、罫線って何? 興味を持ったんで軽くググってみた キー・パーソンは「アラン・シャンド」 幕末にイギリスから横浜の英国銀行の支店長代理として来日している 高橋是清とか渋沢栄一とかに師事したのか影響を与えた のか なんかそんな立場 江戸期の大福帳から帳簿に変化させていった最大功労者 と思えた で、英国は当時すでに赤青黒罫線の見慣れた帳簿形式を確立してた と成ると派生したアメリカでも当初はそれを踏襲してたはず だし、資料も残ってる それをアメリカ人気質でどんどん簡略化してっての現在なんだろな イギリスの現状はどうなんだか気には成る 似たような苦労してるのか?果たして スレチでごめんなさい Accessにファイル名のテーブルがあって、フォームか何かを使ってその中から手動で選んで、ボタンを押すとそのファイルがダブルクリックされるという動作をさせることはできますか? >>554 なんでダブルクリックするの? 一応、私が作るやつはだいたいファイルパスをハイパーリンク記述で格納してるけど。 俺がいつも気になるのは https://i.imgur.com/GMZ1754.jpg こういう下に小計が飛び出してるやつ 上に請求書書いてるならそこにもろもろ書けよ、と思ってしまう こうしろ、と https://i.imgur.com/0qS9NtP.png レコードの下に小計なんかが記載される携帯明細なんか場合によってはこの小計のために次の用紙になったりしてるし 電卓叩いて検算してた頃の名残り ってのもある 相手を信用しないという訳では無いけれど、仕事ならそれはして当たり前の作業 コンピュータ出力だからと安直に鵜呑みには出来ないのは 昨今の軽減税率導入時にもアチコチで散見された 小数点の丸目が間違ってたり もう一つは、それこそその例に書いた通り、次ページがあるのに気付かずに 一枚目だけを封入して送付してしまったり、生憎丁度プリンタの用紙切れだったのに 気付かない方まま提出してしまったりのケアレスミス予防とか まあ、いずれにしろどっちでもいい >>556 accessだとどっちにしろフッターに合計算埋めるから飛び出してようが、 明細と同じ枠を作ろうが、どっちでもいいんだよ。 それより大事なのはヘッダー欄で、ヘッダー欄専用のテーブルは必要になる。 締め業務の設計はやたら面倒くさいのでaccessで納品書、請求書は作るな、というのが私の基本スタンス。 売掛がない主に個人向け販売や、買掛の管理用ならいいけど。 >>558 専用のテーブルって? ACCESSはオススメできないなら何がオススメなんですか? 締ってそんなに大変だったっけ? 売上入力するときに計算してどの請求書にいれるかの日付を格納させてるからそれで抽出してたが >>555 ハイパーリンクでもいいんですが、全データにフルパスのハイパーリンクをテーブルに格納するのは手間なので、 ボタンを押したときにファイル名からパスを生成して叩きたいんです 元テーブルにハイパーリンクフィールドがないと無理ですかね? クエリの段階で生成してもいいんですが >>560 そこまで詳しいなら特に言うべきことはないです。結局何がしたいのかさっぱりわからんし。 フルパスを入れるのが面倒?検索で容易にヒットするファイルダイアログをコールしてフルパスを登録する方法も嫌? 全てが面倒なら実はデータベースに登録する必要すらない要件なのでは? その場合、ブラウザコントロール使って「files」から始まる疑似urlでファイルビューア的に使うこともできるけど。 >>559 自作することに、それなりにリスクがあると言いたいだけ。 売掛金を請求する、しかも少額ではない金額、というのは大きな責任が伴うので。 ベンダーのERPの構造を真似して作ったものは 締めの指示を入れる時に、得意先ごとの締日から対象期間を抽出、 明細を請求明細にコピーするか、売り上げ明細に請求番号埋めて、 本体価格の積算を「請求のヘッダー用テーブル」に格納、 前月の売掛金のサイトが1か月以内、全額支払いとは限らないので前月残高を 計算、今月の最終請求額を確定。 さらに軽減税率対象品を扱ってる関係で、最近は8%と10%をそれぞれ集計する、 という手間も増えた。 請求書の保全性を保証するという意味では、売り上げ明細をただSUMしたフィールド を設置して、「請求書でございます」は あんましお勧めしないかな。 個人零細で、1見積もり、1受注、1請求、すぐに支払い、みたいな感じなら 簡易的な設計でもいいと思うけど。 >>560 そういやおまけで付いてくるNorthWindデータベースにそんなような機能付いてたな と思って2019でサンプルDLしてみたら全部英語だった だけどやっぱしディテールフォーム上からそのレコードに添付したい画像を選択できた しかも今のは複数画像をどんどん追加する事さえできる(頁めくりボタンみたいのも出る) どうやってんだろ? とチラと見てみたが・・ よく分らん orz マクロはあんまし 関係無さそうだった さりとてVBAっぽくも無いような、なんだこれ? ここが解析できれば画像だけじゃ無く拡張子変えて他のファイル形式も可能な気がする 自分もハイパーリンクでいいじゃん派だったけど、この機能使ってスマートにしたい 以前のもこれ使って改良できる気がしたから、様子見て分析してみる くだらん テーブルのフィールドのデータ型を添付ファイルにすれば出てくるダイアログだった 解析だの分析だのアホかと どんなファイルでも添付できるが、画像以外を添付すると中身は開かないと判らん ダイアログ内にはファイル名出るからそれで判断ってことか >>564 私が匙投げ掛けたのをせっかく別の角度で言ってくれてるのを頭ごなしに否定するかね。 あんたブレインストーミングに向いてないね。 mariaDBなどの汎用でいうところのblobみたいなもんだから、アプローチとしては間違ってないと思うけど。あとはデータ壊れがちaccessがどこまで堪えられるかってだけで。 おーい、質問者でてこーい。 何がしたいんだね。 ちがう、ちがうw 昼間の二件は両方じぶんが書いた 気負い込んだけど腰砕けだったって話 なんせ、最新の添付ファイル形式なんか使ったこと無かったから、ちょっと惑乱したと ハイパーリンク、OLE、添付ファイル形式どれでもいいんだろうけど Accessの仕様上 OLE > 添付ファイル形式 > ハイパーリンク で容量を食うらしい どんなファイルをリンクさせたいのか詳細は不明だけど、建設業で現場写真や図面の整理が目的 とかだとしたら、昨今の画像ファイルは巨大だからすぐさま仕様の上限に迫るだろうから上の左二つは 使わない方がいいだろうな 大した容量が無いファイルだらけなら添付ファイル形式がいちばん楽な気がした どうしてもリンクをテキストで保存したい理由があるとかなら、VBAで良けりゃコードぐらい出すのはやぶさかでない 余談だが、そのフォームの左側でドロップダウンリストボックス内にチェックボックス付きでリストを見せてた へぇ、今のはこんなことも出来るんだと感心した ?付けた分だけリストに併記できるだなんて これも応用でファイル添付に役立てることは出来そうだな とは思った >>566 それは失礼しました。 1個1Mくらいまでのファイル張り付けるなら有りかなと思う。 先日、画像用にoleオブジェクト欄作ってあったのが、いつのまにかデータ壊れてたので 添付ファイル形式に変えた。 ドラッグ&ドロップが使えず、登録の仕方にややクセがあるのが難点だけど。 accessDBは時々わけわからん壊れ方するから、dbサーバーを立てる、添付ファイルの元ファイルは完全に保全しておく、大人しくハイパーリンクを使う のいずれかでしょうね。 フォームってVBエディタで書き出せるのはVBAのコードだけで、VB6のフォームみたいにソースコードで書き出せないんですね エクスポートして、テキスト編集でコード直して、インポートしたかったんですけどね 印刷用のレポートって細い作り込みできないよね? フィールドの文字を正確に中央揃えとか 高さのあるフィールドの横にそれの中央に合わせてフィールドを配置するとか 使うフォントやサイズにも依るだろうけど、テキストボックス内の上下左右の余白を駆使するとか 試しに□(四角)で印刷してみてその余白値を微調整だろうな VBAでやりたかったら、hatena chips さんの AutoFontSize とかをお借りするとか Formでも使える とは言え、等幅やプロポーショナルとかメイリオ・遊ゴシックとかが影響するから微妙な時も有り得る せめて中央揃えはほしいよな というか1とかにしても1.03とかにされるのも困る 作品じゃないんだから読めればいいだろ、というスタンスなんだろうが 何度も書くけど、インチ(inch)基準 ヤードポンド法 >>572 どういうこと? どうやれば入れた通りの数値になる? MS日本のAccess部隊が追いやられてるので、そこまで手が回らない 一部キチンと入るプロパティもあるだろうけど、殆どはcmで入れてもinch換算されてしまう 誤差が出ても諦める そういうもんだと軽く流すしかない 0.97 と 1.00 と 1.03 をそれぞれ見極められる読み手も少ないだろ CAD屋なら兎も角 或いは全部inchで揃えたらきれいに成るのかも知れない やったこと無いから知らんけど ま、Excelだって10cm四方の正四角形の図形を描いてからモニターに定規充ててもズレてるし 印刷しても9.xxcmだったりするから一緒だな シビアにtwipを取得して レポートのテキストボックスの高さを再指定する関数作ったけど それでもうまく行かないこともある。 SELECT * FROM Hoge WHERE Col1 = 'AA' AND Col2 NOT LIKE 'BB*' こんな単純なクエリで結果が空になります…。 WHERE の条件を個別に試すとそれぞれちゃんと動くんだけど…。 もちろん2つの条件を満たす行はちゃんとあります。 どうしてこうなるのかサッパリ分かりません。 分かる方、よろしくお願いします。 >>576 andの前後をかっこでくくってみたら。 デザインビューで自動生成したやつだから、やたら()多いけど 一応動いたけど。 col1 col2 aaa bbba aaa ccc SELECT [テーブル1].col1, [テーブル1].col2 FROM テーブル1 WHERE ((([テーブル1].col1)="aaa") AND (([テーブル1].col2) Not Like "bbb*")); そうだね WHERE以下の条件をANDで結合するときはカッコが必要 >>577-578 アドバイスありがとうございます。 原因が分かりました。 改めてテーブル定義を調べたところ、 「NULLは可、空文字列不可」 でした。 そりゃ 空に見える NULL値相手に LIKE は効かないですわ… (頭がおかしいですけど富〇通のシステム) で、LIKE で引っかかったと思っていたレコードも「何故か半角スペースが入っていた」というのが真相でした。 〇士〇は死んだ方がいと思いました。 >>578 WHERE 以下の条件を AND 結合する時のカッコはとくに必要ありません。 例えば10行ほどのレポートで ずらりと等間隔に置きたいんですよね フィールドの中でもずれるし、小数点でもずれるしで いびつになっていく エクセルでは余裕だがあるフィールド群にたいして真ん中に寄せるとかもないからなあ ファイルメーカーではとっくになるのに >>579 わからない。 >>576 のクエリーはNULLも空白も関係ないじゃないの Excel や FileMaker なら得意だが というAccess 貶めの意図は通じた 己の状況を見知らぬ他人に伝える能力は劣ってるのも伝わった 小数点でも・・と書いてるから、左右の位置ズレなんだろうなとは思うが フォントの種類・サイズ、フィールドの書式設定、上下左右位置決め、内部余白 ここらを見直しても直らないならスクショ撮って載せなきゃわかり辛い ずらりと等間隔に置きたい なんだろ? 左右均等揃えとかの意味かな? >>582 そんなことってあります? プロポーシャルでもそういう経験ないかも。 一応、msゴシックpならmsゴシックにしてみるとか。 >>583 NULL は特殊な値だから = や LIKE は通じない。 また、条件をバラして実行してみて、LIKE で空文字列が引っかかったと思っていたら実は半角空白が入れてあった、ということ。 http://wkubota. はてなブログ.com/entry/2014/02/18/004047 こんな感じだった。 >>586 なんとなく解り申した。WHERE条件式の書き方がわかってよかったですね。 >>588 良くはないです。 一応そこそこのSQLは書けるし書いてきた。 「テーブル設計がクソ過ぎ。だけど変更できないから生データに触るのも一苦労」 という地獄ですこれは。予想の斜め90度行っちゃってた。 ちなみに日付型や数値型やブーリアン型にすべきところも文字列型。狂ってる。 【Windows10 Access 2016】 Dim C配列 As Variant C配列(1, 1) = "AAA" ・ ・ ・ C配列(10, 3) = "ZZZ" Range("A1:C10") = C配列 Excelでは上記例のように、 配列に格納したデータを一発でセルに代入できますが Accessでも同じように配列に格納したデータを 一発でテーブルに代入する方法はありますか? >>590 現状ではたぶん無いと思います ・エクセルのセル(基本的に何でも格納可能) ・テーブルのフィールド(一致する型のみ格納可能) 大から小への変換は困難、小から大への変換は楽、と同じ理屈です 例えるなら、配列(大)→エクセル(大)、配列(大)→テーブル(小) >>590 一発の目的は何なんだろう コードを短く書きたいってだけなら 配列をデータセットに代入とかならできたんじゃないか エンジン内部ではレコード数分ループしてるかもしれないけどね クリップボードにコピーしたデータをAccessに張り付けると複数のインサートだよね .NetとかだとLINQとか使って代入してたんじゃないかな VBAでも探せばありそうだけどどんな使い方をするかによるんじゃないの SQL1命令で複数レコードインサートする命令はかけるわけだから、探せば関数があるかもね データの加工ってアクセスで行うよりもエクセルとかでやった方が早くない? アクセスは加工じゃなくてデータの新規入力と抽出、分析のためのソフトだと思う。 Accessで楽観的排他を行いたいです。 変更時間を持っているので、表示した時と更新時の時間が変わっていたらキャンセルしたいです。 (1人が使用していましたが、複数人使うことになったので改修することになりました。) データシートビューで直接値を変更できるようになっており、 変更日付も保持しています。 私が変更した時に、変更日付が変わっていたら反映しないようにしたいです。 以下が分からないので、ご教示お願いします。 1.データシートビューなので、複数レコードがありカレントレコードの変更日付(表示した時点)の取得方法がわかりません。 (更新時に変更日付を取得すると、誰かが更新していた時には他の人の更新時間が入っています。) 2.変更をキャンセルするには、レコードのbeforupdateに処理を書けばよいのでしょうか。 3.この方法を行うには、DaoやAdoでトランザクションをかける必要があるのでしょうか。 Accessで楽観的排他を行いたいです。 変更時間を持っているので、表示した時と更新時の時間が変わっていたらキャンセルしたいです。 (1人が使用していましたが、複数人使うことになったので改修することになりました。) データシートビューで直接値を変更できるようになっており、 変更日付も保持しています。 私が変更した時に、変更日付が変わっていたら反映しないようにしたいです。 以下が分からないので、ご教示お願いします。 1.データシートビューなので、複数レコードがありカレントレコードの変更日付(表示した時点)の取得方法がわかりません。 (更新時に変更日付を取得すると、誰かが更新していた時には他の人の更新時間が入っています。) 2.変更をキャンセルするには、レコードのbeforupdateに処理を書けばよいのでしょうか。 3.この方法を行うには、DaoやAdoでトランザクションをかける必要があるのでしょうか。 >>596 私が解釈しているトランザクションは 複数テーブルを同時に書き換えるときや、大量処理で数秒以上要するときに使うもんだと思ってます。 Aさんが更新した情報を上書きしてはいけない状況なのでしょうか。(一部、重複的な更新入力になったとしても) accessの親切なんだかよくわからん設計で、他人の更新が画面に反映されるのは確かです。 レコードポインタを合わせた時刻をパブリック変数に入れて 更新前イベントで、更新時刻フィールドと変数を比較して 変数より大きい値ならアラートの一つでも出してundo処理でしょうね。 (コマンド忘れたけど) >>597 様 間違い防止のため、上書きしたくないみたいです。 ご教示頂いた内容で対応したいと思います。 ありがとうございました! POWER APPSでつくればACCESSのレコードなどをスマホやタブレットで閲覧することはできますか? 古くて申し訳ないですが、Access2002です フォームを作って、コンボボックスでデータ一覧(ID:数値が入っている)を表示させました マクロを作って、アプリケーションの実行を設定して、コマンドラインにアプリケーションのありかと開くファイル名を入れました 開くファイル名に固定文字列を入れるとうまく開くのですが、そこにコンボボックスの数値IDを渡したいんです コンボボックスダブルクリックでマクロが呼び出されるようにはしたので、あとは数値を渡すだけなんですが、 コマンドラインにどのように記述すれば目的の数値を含むコマンドを実行できるでしょうか? Private Sub データ一覧_DblClick(Cancel As Integer) Dim strPath As String strPath = "notepad.exe C:\test" & Me![データ一覧] & ".txt" Call Shell(strPath) End Sub フォームでリストボックスをつけてみたのですが、列が1列しか表示されません。 表示されたものをクリックすると複数行複数列が出てくるのですが、最初から全部表示させたいです。 フォームを開くだけで複数の列を表示させるにはどうしたらいいでしょうか? VBAで質問です フォームのリストをダブルクリックすると発生する同じようなイベントプロシージャがいっぱいあるので、 標準モジュールのSubにまとめて記述することにしました イベントプロシージャの中でMe![id]というのを使っていたのですが、そのままコピーしてもMeのところで使用方法が不正だとエラーが出ます 各プロシージャからオブジェクトの名前をStringで渡しても、対象はコレクションでなければなりませんとエラーが出ます 何をどのように記述すればいいか教えてください >>606 Me は自身のフォームオブジェクトを示すので、標準モジュールからはどのフォームか解らないんよ >>607 どうやって渡せばいいんでしょうか? フォーム名をString引数で渡してもだめなんです Currentdb.Containers!forms(0) Currentdb.Containers!forms("") どなたか教えて下さい。 accessのグラフに目盛りの最小値、最大値の設定があるのですが、VBAからその値をセットできないものでしょうか? ずっと調べ続けて、徹夜になってしまった。 できるよ マクロの記録を押してから手動であれこれ操作すればマクロにどう書けばいいか自動で記述してくれるからそれをいじればいい >>611 ありがとうございます。 accessとEXCELだと、グラフオブジェクトって別物だとおもっていたのですが、、、 試してみます。 >>612 やはりaccessにマクロの記録はありませんでした。 ・Win10 ・Access2019 Docmd.RunSQL "UPDATE Table1 SET 数量 = 5 WHERE ID = 11" Docmd.RunSQL "UPDATE Table1 SET 数量 = 2 WHERE ID = 3" Docmd.RunSQL "UPDATE Table1 SET 数量 = 3 WHERE ID = 8" 上記のように複数のSQL処理を1行1行処理するのではなく、 下記のようにつなげたSQL文を1度で処理する方法はありますか? strSQL="UPDATE Table1 SET 数量 = 5 WHERE ID = 11 " & _ "UPDATE Table1 SET 数量 = 2 WHERE ID = 3 " & _ "UPDATE Table1 SET 数量 = 3 WHERE ID = 8" >>615 たぶん、vbaもsql記述も条件分岐噛ませないのであれば、方法はない。マクロにする必然性がようわからん。 この手の作業は、過去の古いデータに手を加えたり、「あ、変だ」の修正だったりするので クエリービルダーの中でちゃちゃっとやるけど。 恒久的にやりたいのであれば、 id 数量のテーブル作って、元のテーブルとjoinして updateで参照埋め込みするのが いいんじゃねーの? Accessではやったことないけど UPDATE Table1 SET 数量=CASE WHEN ID=11 THEN 5 WHEN ID=3 THEN 2 WHEN ID=8 THEN 3 END WHERE ID=11 OR ID=3 OR ID=8 これは使えないかな ログを取ってるSQLServerとかならログが一行になる意味はあるかもしれない >>616 > 条件分岐噛ませないのであれば 既に書かれてましたね 失礼しました ブログラム板で無視されたのでこちらにも書きますね。 最近のAccessは条件付き書式の条件数が3つまでという制限がなくなったと聞いて、vbaで4つ条件を書いたら、怒られた。 条件数の上限の件はどうなっているの? tableテーブルにid,name,dateという項目があったとします あるid=numにおいて最大値のdateをVBAで取り出すには DMax("date", "table", "id=" & num) とすればいいのですが、このdateのときのnameの値を知るにはどうしたらいいでしょうか? maxdate=DMax("date", "table", "id=" & num) dlookup("name", "table", "id=" & num & " and date=#" & maxdate & "#") 前提条件 id は重複登録がある(無いなら DMax の意味が無い) DMax の結果に同じ date はない(1レコードに絞れないと複数 name が存在) フィールド date は日付型(文字列ならシングルクォーテーションになる) レコードセットも検討してね ACCESS始めようと思ってるのですが 2種類のテーブルに違うデータを取り込んで 新しくテーブルを作る際にその前に取り込んだ2種類のフィールドデータを混ぜ合わせたテーブルは可能でしょうか? 初心者すぎて概念などが間違っていたらすいません ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる