問題タブ [ms-access-2000]

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 投票する
1 に答える
58 参照

c# - クエリを削除する ADO

テーブルを削除するために使用できることは知っていますがDrop Table、クエリを削除する方法はありますか? これを実現するには、DAOではなくADOを使用することをお勧めします。可能であれば、DAOではデータベースを開く必要があり、ADOでは開かないためです。

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

c# - C# アプリから MS Access データベースに新しく追加されたレコードを更新するときに、「同時実行違反: UpdateCommand が予想される 1 レコードの 0 に影響を与えました」

私の問題を解決するのを手伝ってください。C# で記述されたアプリケーションから MS Access (2000 形式) データベース (.mdb) に新しく追加されたテーブル レコードを更新しようとすると、「同時実行違反: UpdateCommand が予想される 1 レコードの 0 に影響を与えました」というエラーが表示されます。このエラーはかなり一般的なものであり、さまざまなフォーラムで提案されている解決策を試しましたが、成功しませんでした.

これが私が段階的に行うことです:

mdb にテーブル 'TRACKS' があり、特にこれらの列があります。

  • ID - タイプ 'AutoNumber' (キー列)
  • タイトル - 「テキスト」
  • フルタイトル - 「テキスト」
  • 長さ - 「日付/時刻」

    1. データベースへの接続を確立し、次の方法でテーブル レコードを取得します。

      /li>
    2. 次に、このコードを使用してテーブルに新しいレコードを追加します (コントロールにはレコードの値が含まれます) txtTitletxtGenTitle

      このコードは正常に実行されました。ローカル DataTable と mdb ファイル内の実際のテーブルの両方に、新しいレコードがテーブルに追加されます。キー列の新しい自動インクリメント値は、このハンドラーで受信されます。

      この ID の行はRowState == Unchangedになっているので、すべて問題ないようです。

    3. txtLengthここで、この新しく追加されたレコード (コントロールから) のいくつかの値を更新したいと思います。

      そして、adTracks.Update(dt) 「同時実行違反: UpdateCommand は、予想される 1 レコードの 0 に影響を与えました」という行でエラーを取得します。データベースは更新されず、DataTable も更新されません。

これはおそらく、レコード ID に何らかのエラーがあることを意味している可能性があります。つまり、挿入後に正しい値で更新されていないということです。しかし、ここではそうではありません。OnRowUpdatedステップ 2 のハンドラーで ID が正しい ID で更新され、この ID を持つレコードがテーブル mdb ファイルに追加されます。を呼び出す前の手順 3adTracks.Updateでは、res[0]正しい ID 値と も含まれていますRowState == Modified。しかし、私はまだこのエラーが発生します。私は何を間違っていますか?

ここで提案されているようdt.AcceptChanges()に後に追加すると、役に立ちません。adTracks.Update(dt)


アップデート:

1. krishによって提案された試みのアプローチ:

try/catchステップ 3 のブロックの前に次の行を追加しました。

そしてそれはうまくいきます!データベースが更新され、対応するDataRowgets が取得されRowState == Unchangedます。これはかなりの回避策です。しかし、「従来の」アプローチがここで機能しない理由を知りたいです。多くの列を更新する必要がある場合、回避策はあまり便利ではありません。また、単一の行を更新している場合にのみ許容されるようで、一度に複数の行を更新する機能が必要です。

2. hynseyが提案するアプローチを試す:

adTracks.Update(dt);ステップ 3 の行を次のコードに置き換えました。

悲しいことに、動作はまったく変わりませんでした - 同じエラー「同時実行違反: UpdateCommand は、予想される 1 レコードの 0 に影響を与えました」。

3 つのステップすべてで使用するコードを次に示します (元のコードと比較してください)。

3. 最初のコードが機能しない理由を調査するために、エラーの詳細を提供します。

OnRowUpdatedargsエラーにもかかわらずハンドラーが呼び出され、ハンドラーに渡されたパラメーターを調べることができます。args.RowhasRowState == Modifiedargs.Commandhas は次のとおりCommandTextです (読みやすくするために改行を追加しました)。

この生成されたコマンドの何が問題なのか誰にもわかりますか? 「GenreID」、「StyleID」などは、「TRACKS」テーブルの他の列です。これらすべての「?」が何なのかわかりません。平均。

また、例外が発生した場合、スタック上の最新の呼び出しは次のとおりです。

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

ms-access - Access 2000 で高さ、幅、カウントなどのレポートの単語の自動変更をオフにする方法

(古い) プロジェクトの場合、Access 2000 でレポートを作成しました。このレポートでは、3 つのテーブル フィールド値、つまり Aantal、Hoogte、および Breedte を乗算するフィールドを作成したいと考えました。

だから私はそれを私のテキストフィールドに次のように入れました: =[Hoogte] * [Breedte] * [Aantal]. Access 2000 の言語はオランダ語です。

何が起こるかというと、Access がこれらの 3 つの単語をそれぞれ に自動的に変更したことです[Height] * [Width] * [Count]。これらのテーブル フィールドはそのように名前が付けられていないため、明らかにフィールドはこれらのテーブル フィールドを認識しません。

問題は、オランダ語の 3 つの単語 (Hoogte、Breedte、Aantal) が英語で高さ、幅、数を意味することです。だから私はAccessが私がそれらを使いたいと思っていると思います(私は使いません)。'

問題は、これらの単語の自動入力/修正/翻訳を停止するにはどうすればよいですか? オフにする設定はありますか?

私はすでにオプション--->一般タブ--->自動名前修正を調べましたが、ここではすべてがすでにオフになっていました(保持/記録情報を除く)。

0 投票する
0 に答える
84 参照

php - ドイツ語文字の PHP / MS Access エンコーディングの問題

ドイツ語の文字が PHP から INSERTED されている場合、MS Access 2000 で正しく表示されない理由がわかりません (ms アクセス インターフェイスからドイツ語の文字を直接挿入すると、すべて問題ないためです)。

PDO、PHP 5.6 を使用。

UTF-8 から別のエンコーディングへの変換を試みました: Windows-1250、1251、1252、1256、およびその他のいくつか..

私はこれで立ち往生しています。誰かが解決策を知っていれば、本当に感謝します!

ありがとう!

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

sql - MS ACCESS で数値フィールドに自動インクリメント値を入力します

次の構造のアクセス テーブルがあります。

フィールド「INO」はデータ型「NUMBER」に設定されていますフィールドサイズ:ダブルインデックス=はい

このフィールドはプログラムによって自動インクリメントされますが、データベースからいくつかの役に立たないキャンセルされたレコードが削除された後です。いいえ。シリーズは不定期です。番号を再生成し、削除された番号のギャップを埋めたい。つまり、INO 1435 は 1433、1436 から 1434、1440 から 1435 などになります。

テーブルからレコードをフィルター処理するために使用するステートメントを選択します。

1430 レコードが整うまでは、1430 年以降と日付が 01-Apr-15 のギャップがあります。テーブルには約 18,000 のレコードがあるため、手動でレコードを修正するのは簡単ではありません。これを SQL またはその他のコマンドで修正するにはどうすればよいですか。

PS : 関連するテーブルまたはエントリは影響を受けません。会計目的でエントリの順序を維持したいだけです。

「Do While」機能を使用するのと同じように。開始エントリ INo は正しく、既知です。すべてのエントリには、最初のレコード INo=1430、次のレコード INO = 1430+1、次の 1430+2 から最後のエントリまで、ループで番号が付けられます。「WHERE TYPE=True」とともに UPDATE クエリで同じものを実装する方法。

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

ms-access-2000 - ms access 2000 の問題、クエリで同じフィールドの繰り返し表示

ms access 2000 で、クエリに同じフィールドを複数回入力しようとすると、フィールドが 1 回しか表示されないという問題が発生しました。たとえば、8150 などの数字でフィールドに複数回入力した場合と同様に、1 回しか表示されません。 ms access 2000 クエリ/フィールドの問題

この画像はクエリを示しています。

この問題を解決するために ms access 2000 のすべてを既に確認しましたが、適切なものは何も見つかりませんでした。

この画像には、私が抱えている問題と必要なものが含まれています。

この画像は一目瞭然です

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

ms-access - SQL(アクセス)で英数字2文字(最大256)の範囲を選択する方法

テーブルに「regnr」という名前の列があります。値は 2 文字 (zz に達すると、文字が追加され、aaa で始まります) の後に 1 ~ 256 の数字が続きます。

この列で「ba50」から「bc28」までの範囲を見つける必要があります

使ってみたWHERE 'regnr' >= "ba50" AND 'regnr <= "bc25"

これは、「ba」範囲の 1 から 4 で始まる数字を除外するため、100+ は表示されません。「bb」に達するとすべてが表示され、「bc」に達すると、表示すべきものの一部のみが表示されます。データベースに登録番号 BC1 から BC25 があるにもかかわらず、bc は「BC10」、「BC11」、および「BC2」のみを表示します。

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

vb6 - あるテーブルの値を別のテーブルに合計する

私は VB6/Access 2000 を使用する SQL 初心者で、テーブルの値の合計を別のテーブルに入れるクエリを取得しようとしています。VB6は仕事をしますが、とても遅いです。Accessで何度も検索して試しましたが、IN、ON、(INNER) JOINというキーワードで迷子になり、毎回異なるエラーが発生しました。

コア コードは次のようになります。

  • t1.dateは日付です。重複はありません
  • t2.code'0081'、'090' のような可変文字列です。
  • 値は単精度です

さらに検索した後、ここで同様の質問を見つけ(http://goo.gl/uqlw0U)、それを試しました:

しかし、アクセスは「更新可能なクエリが必要です」と言っているだけです - それはどういう意味ですか?