問題タブ [ms-access-2003]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
265 参照

ms-access - Access データベースの秘密の質問

Access 2003 に、特定のユーザーだけがアクセスできるようにしたいデータベースがあります。私のデータベースには、データベースにアクセスできる必要がある人をリストしたテーブルがあります。(Tbl_BIRT_Users)。テーブルには、名前、ntlogin、および電子メール アドレスが含まれています。「管理者」フィールドもあります。

私の質問には2つの部分があります:

1 - データベースを開いたときに、その人の ntlogin (環境ユーザー名) を検索して、その人がデータベースの使用を許可されていることを確認するにはどうすればよいですか?

2 - データベースで「管理者」の Yes/No フィールドを確認し、非管理者には読み取り専用アクセス権を、管理者にはフル アクセス権を付与する必要があります。

ありがとう!

0 投票する
1 に答える
3435 参照

ms-access - Access 2007 では動的レコードソースを含むデータシートにレコードが表示されないが、Access 2003 では機能する

サブフォームにデータシートがあるメイン フォームを使用する Access 2003 データベースがあります。メイン フォームでは、サブフォームのレコード ソースを更新するメニューから選択できます。サブフォームは、フォームのレコードソース内のフィールドの数とタイプに基づいて、編集に使用できるフィールドの数とタイプも更新します。これは基本的に動的データシート ジェネレーターです。これは、Access 2003 で問題なく機能し、何年も前から機能しています。Access 2007 (フルまたはランタイム) で同じデータベースを開くと、ほとんどのメニュー選択が機能します。ただし、特定の 1 つのテーブルを参照するメニュー オプションを選択すると、サブフォームには列ヘッダーが表示されますが、データ行やエラーは表示されません。クエリがゼロ行を返すかのようです。Access 2007 に違いがあるのはなぜですか? 彼らは新しい予約語を追加しましたか?

私が試したこと:

  • テーブル内のすべてのフィールドを更新して、NULL 値がないようにします (変更なし)。
  • 新しい予約語がある場合に備えて、すべてのフィールドとテーブル名の名前を変更しました (変更なし)
  • フロントエンドとバックエンドを圧縮して修復(変更なし)
  • フィールドを1つずつ含めたり除外したりして、何かが変更されたかどうかを確認しました(変更なし)
  • フォームのレコードソースを新しいクエリに入れます。(期待される行数を返しました)
  • フォームがデータ入力モードに設定されていないことを確認しました。(そうではありません)
  • コードにフィルタが適用されていないことを確認しました。(どれもありませんでした)
  • クエリが Access 2007 で更新可能であることを確認しました。 (そうです)
  • ソース テーブルからデータのチャンクを選択的に削除しました。(変化なし)

私は困惑しています。

0 投票する
2 に答える
11590 参照

vb6 - パスワードで保護されている別のデータベースのテーブルを選択しますか?

MicrosoftAccess2003およびVisualBasic6では、このようにパスワードで保護されている別のアクセスデータベースにテーブルをコピーしようとしています...

エラーで失敗します:有効なパスワードではありません

Select INTO形式はmdbのパスワードを受け入れず、パスワードは接続文字列に含まれている必要がありますか?そうでない場合、別の接続文字列/データベースをどのように参照しますか?

ありがとう

0 投票する
2 に答える
233 参照

ms-access - ローカル アクセス テーブルとリンクされたアクセス テーブルの間のこの違いを克服/回避するにはどうすればよいですか

Ok。簡単な背景: Access 97 からアップグレードされた 2003/2003 形式の MDB ファイルを使用する MS Access 2003。

この例では、2 つのテーブルがあります。

Asset にレコードが追加されると、ID が AssetRels に追加されます。

Asset.ID から AssetRels.ID までの間には、カスケード更新とカスケード削除による参照整合性を強制する関係が存在します。

AssetRels.ID から Asset.ParentID へは、カスケード更新のみで参照整合性を強制する関係があります。

アセットに 2 つのレコードがあります

データ DB で、テーブルにアクセスして VACU0703200 を VACU0704500 に変更すると、変更が期待どおりに反映されます。

データ DB にリンクしているフロント エンド DB を開き、(テーブルで直接) 同じ変更を試みると、「更新できませんでした。現在ロックされています」(いいえ、「別のセッション」については何もありません。それがエラー メッセージ全体です) )

両方のデータベースは、「デフォルトのレコード ロック」に対して「ロックなし」に設定されています。

明らかに、カスケード更新の動作を妨げている行/ページ/テーブル レベルのロックにはいくつかの違いがあります。

このエラーを停止するためにどこかで使用できるプロパティ設定を知っている人はいますか? リレーションシップを削除する必要はありませんが、削除する必要があり、コードで処理する必要がある場合があります。

編集: 原因は、テーブルにメモ フィールドが含まれていることです。どうやら、リンクされたテーブルを介して、メモ フィールドがオーバーフローすると、4K 行のサイズがテーブル ロックにエスカレートします。それが問題を引き起こします。

解決策 (ハック) は、フォームの ID フィールドを編集できないようにし、新しいフォームを追加して名前を変更することです。新しいフォームを開く前に変更を保存し、更新クエリを介して更新を実行します。

0 投票する
1 に答える
290 参照

ms-access - Ms-access でのクエリ

このクエリは、eventtype が「PNremoved FROM Wrapper」と等しくないパーツ番号を表示します。このクエリは正しいデータを表示しています。部品番号はこの追跡番号から削除できますが、別の追跡番号を使用して入力できます。その場合、機能していません。

同じ部品番号と別の追跡番号を入力したときに機能するクエリが必要です。

パーツ番号は、eventtype= "pn Removed from wrapper" を使用した追跡番号と一緒に表示されるべきではありません。ただし、同じ部品番号を持つ別の追跡番号で表示されるはずです。

例を使ってこれを示しています。

reviewreleasetable にリンクされた Reviewrelease_Form (メイン フォーム):

このテーブルには、基本データとラッパー番号が含まれています

tblRevRelLog_DetailにリンクされたRevRel_Form(サブフォーム)

このフォームには部品番号に関するデータが含まれています

tblEventLog にリンクされた eventhistory(サブフォーム)

このフォームには、部品番号で発生したイベントが含まれています

ラッパーから部品番号を削除したい場合は、削除します。イベント履歴フォームは次のようになります。

次に、RevRel_Form は、次のようにこの部品番号データを表示しないはずです。

これは、RevRel_form のデータ ソースに記述したクエリ (上に記述したクエリ) で正常に機能しています。

しかし、問題は、削除された部品番号が、将来別の新しいラッパー番号で再び表示されることです。現在使用しているクエリでは、部品番号データと新しいラッパー番号も表示されません。

そこで、RevRel_Form の部品番号データを新しいラッパー番号で表示するクエリが必要です。ただし、その部品番号を削除したラッパー番号ではありません。

レコードが正しい形式で表示されない場合は、編集ビューで確認してください。

0 投票する
3 に答える
2300 参照

forms - 複数のレコードを作成するための1つの(おそらくバインドされていない)Access2003フォーム

私は標本を追跡するためのフォームに取り組むために採用されました。各標本は被験者に関連付けられています。各標本には、9x9の収納ボックスに特定のスロットもあります。データ入力を簡単にするために、Accessフォームがボックス自体(およびAccessにデータを入力するために使用される紙のフォーム)をミラーリングするのが最善だと思います。9列×9行で、各要素は基本的にテキストで構成されています標本IDのボックス。これは基本的に私がそれをどのように見せたいかです:

代替テキスト

したがって、データ入力担当者は基本的にボックス番号と標本IDを入力し、[レコードの作成]をクリックして、それらのレコードをすべて表示します(ここで他の処理が行われているのを確認できますが、現時点ではそれほど重要ではありません)。ただし、これをコーディングするための最良の方法についてはよくわかりません。今のところ、私が考えることができる最善のプロセスは、次のとおりです。1)ボックスが存在しない場合は、挿入クエリを実行してボックスを作成します。2)存在しない場合は、挿入クエリを実行してサブジェクト(人)を作成します。 、および3)各標本に対して挿入クエリを実行し、その行と列をハードコーディングします(たとえば、box_col ='A'、box_row = '1')。

注:サブジェクトIDと標本IDはどちらもIDフィールドから解析されます。これは間抜けで、私の考えではありませんが、このように設定されています。しかし、私はそれを処理することができます。

これは確かに厄介なことですが、他に何をすべきかわからず、私がグーグルで調べたもののほとんどは、単一のフォームからの複数レコードの作成に関連していません。これを行うためのより良い方法はありますか?単にアイデアを放棄して、より伝統的なバインドされたサブフォームアプローチを採用する必要がありますか?

0 投票する
1 に答える
43 参照

key - クライアント リストの追加インデックス

Access 2003 でクライアントとケースのデータベースを作成しています。親クライアント テーブルには、クライアントの名前、会社 (存在する場合)、ステータス (値リスト)、追加メモ (テキストまたはメモ タイプ)、および Y/ のフィールドがあります。メーリング リストの N トグル ボックス。PK はインクリメント オートナンバーです。他のスレッドからの正規化のヒントに従って、住所と電話番号は次のように独自のテーブルを取得します。

tbl_Client

(ジャンクションテーブルにtbl_Clientリンクしtbl_Addresstbl_Phoneジャンクションテーブルを介してリンクしますが、それを表す方法がわかりません。)

私の調査によると、テーブルには少なくとも 2 つのインデックス付きの重複しない列 (1 つの PK と 1 つの追加の一意のフィールド) が必要です。他に一意であることが保証されている唯一の列tbl_Clientはメモ フィールドです。姓が再度表示される場合があり、特定の会社に複数のクライアントがいる場合があります。

では、私の質問は次のとおりです。Note フィールドにインデックスを付けて重複を禁止するか、それとも ClientID AutoNumber が唯一の一意の値になることを受け入れるのがよいでしょうか?

(もちろん、この質問は、上記の構造全体に取り返しのつかない欠陥がないという前提に基づいています。その場合は、お気軽に恐怖を表明してください。)

0 投票する
1 に答える
2065 参照

ms-access-2003 - パススルークエリを使用する場合の接続パラメータの変更

パススルークエリを介してストアドプロシージャを使用するためのレポートを作成したいAccess2003アプリケーションがあります。1つの例外を除いて、すべてが正常に機能します。パススルークエリに使用するストアドプロシージャを指定する場合、データベース接続情報を提供するDSNを選択する必要があります。パススルークエリで使用されるストアドプロシージャの接続情報をコードで変更できるようにする必要があります。これは、アプリケーション内から開発、本番、テスト環境に切り替えることができるようにするためです。

現在、すべてのデータアクセス(追加、更新、編集)はADOを使用しており、VBAコードを介して接続文字列を作成しています。パススルークエリの接続情報をコードで変更する方法がわかりません。何かご意見は?ありがとうございました。

0 投票する
2 に答える
2043 参照

ms-access - MSAccess2003/2007-2007Officeがインストールされたデスクトップで2003バージョンのmdbをコンパイルします。2003 mdeを保持しませんか?

そのため、Access 2003 /Office2003を使用して最初に作成されたaccessmdbファイルがあります。2007Officeがインストールされた新しいイメージを職場で受け取ったためです。Accessデータベースのファイル拡張子はまだmdb。であり、以前は2002-2003Accessデータベースに変換されていました。

これが私の質問です。まだ更新されていないため、2003mdbにアクセスする必要があるユーザーがいます。ただし、このバージョンをコンパイルしようとすると、.mdeファイル(.accdbなどではない)として表示されるため、バージョンが正常に保持されているように見えます。

ただし、開くと、「ファイルを開けません。正しいバージョンのAccessがインストールされていることを確認してください」という標準が表示されます。

私はここで私が間違っていることをしているのか、それともするのを忘れているのか?デスクトップに2007をインストールすると、2003 / .mdeファイルをコンパイルできませんか?

ありがとうジャスティン

0 投票する
1 に答える
1233 参照

ms-access - ms-access 2007 ランタイムと lockWindowUpdate

VBA コードで lockWindowUpdate API を使用すると、画面のコンテンツを更新するときに画面のちらつきが回避されます。また、基になるレコードセットで計算\更新が行われるたびにコンピューターが画面を更新する必要がないため、計算の遅延も大幅に改善されます。

残念ながら、Access 2007 ランタイムで正しく動作させることはできません! 一部の画面では、Access 2007 ユーザーがデータを更新するのに、Access 2003 ランタイム ユーザーの 30 倍の時間がかかります。

少しグーグルで調べてみると、 powerpoint 2007に関連する同様の問題が議論されていることがわかりましたが、msAccess については何も、または明確な解決策がありませんでした。どんな助けでも大歓迎です。