問題タブ [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.
c# - クエリを削除する ADO
テーブルを削除するために使用できることは知っていますがDrop Table
、クエリを削除する方法はありますか? これを実現するには、DAOではなくADOを使用することをお勧めします。可能であれば、DAOではデータベースを開く必要があり、ADOでは開かないためです。
c# - C# アプリから MS Access データベースに新しく追加されたレコードを更新するときに、「同時実行違反: UpdateCommand が予想される 1 レコードの 0 に影響を与えました」
私の問題を解決するのを手伝ってください。C# で記述されたアプリケーションから MS Access (2000 形式) データベース (.mdb) に新しく追加されたテーブル レコードを更新しようとすると、「同時実行違反: UpdateCommand が予想される 1 レコードの 0 に影響を与えました」というエラーが表示されます。このエラーはかなり一般的なものであり、さまざまなフォーラムで提案されている解決策を試しましたが、成功しませんでした.
これが私が段階的に行うことです:
mdb にテーブル 'TRACKS' があり、特にこれらの列があります。
- ID - タイプ 'AutoNumber' (キー列)
- タイトル - 「テキスト」
- フルタイトル - 「テキスト」
長さ - 「日付/時刻」
データベースへの接続を確立し、次の方法でテーブル レコードを取得します。
/li>次に、このコードを使用してテーブルに新しいレコードを追加します (コントロールにはレコードの値が含まれます)
txtTitle
。txtGenTitle
このコードは正常に実行されました。ローカル DataTable と mdb ファイル内の実際のテーブルの両方に、新しいレコードがテーブルに追加されます。キー列の新しい自動インクリメント値は、このハンドラーで受信されます。
この ID の行は
RowState == Unchanged
になっているので、すべて問題ないようです。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 のブロックの前に次の行を追加しました。
そしてそれはうまくいきます!データベースが更新され、対応するDataRow
gets が取得されRowState == Unchanged
ます。これはかなりの回避策です。しかし、「従来の」アプローチがここで機能しない理由を知りたいです。多くの列を更新する必要がある場合、回避策はあまり便利ではありません。また、単一の行を更新している場合にのみ許容されるようで、一度に複数の行を更新する機能が必要です。
2. hynseyが提案するアプローチを試す:
adTracks.Update(dt);
ステップ 3 の行を次のコードに置き換えました。
悲しいことに、動作はまったく変わりませんでした - 同じエラー「同時実行違反: UpdateCommand は、予想される 1 レコードの 0 に影響を与えました」。
3 つのステップすべてで使用するコードを次に示します (元のコードと比較してください)。
3. 最初のコードが機能しない理由を調査するために、エラーの詳細を提供します。
OnRowUpdated
args
エラーにもかかわらずハンドラーが呼び出され、ハンドラーに渡されたパラメーターを調べることができます。args.Row
hasRowState == Modified
とargs.Command
has は次のとおりCommandText
です (読みやすくするために改行を追加しました)。
この生成されたコマンドの何が問題なのか誰にもわかりますか? 「GenreID」、「StyleID」などは、「TRACKS」テーブルの他の列です。これらすべての「?」が何なのかわかりません。平均。
また、例外が発生した場合、スタック上の最新の呼び出しは次のとおりです。
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が私がそれらを使いたいと思っていると思います(私は使いません)。'
問題は、これらの単語の自動入力/修正/翻訳を停止するにはどうすればよいですか? オフにする設定はありますか?
私はすでにオプション--->一般タブ--->自動名前修正を調べましたが、ここではすべてがすでにオフになっていました(保持/記録情報を除く)。
php - ドイツ語文字の PHP / MS Access エンコーディングの問題
ドイツ語の文字が PHP から INSERTED されている場合、MS Access 2000 で正しく表示されない理由がわかりません (ms アクセス インターフェイスからドイツ語の文字を直接挿入すると、すべて問題ないためです)。
PDO、PHP 5.6 を使用。
UTF-8 から別のエンコーディングへの変換を試みました: Windows-1250、1251、1252、1256、およびその他のいくつか..
私はこれで立ち往生しています。誰かが解決策を知っていれば、本当に感謝します!
ありがとう!
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 クエリで同じものを実装する方法。
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」のみを表示します。
vb6 - あるテーブルの値を別のテーブルに合計する
私は VB6/Access 2000 を使用する SQL 初心者で、テーブルの値の合計を別のテーブルに入れるクエリを取得しようとしています。VB6は仕事をしますが、とても遅いです。Accessで何度も検索して試しましたが、IN、ON、(INNER) JOINというキーワードで迷子になり、毎回異なるエラーが発生しました。
コア コードは次のようになります。
t1.date
は日付です。重複はありませんt2.code
'0081'、'090' のような可変文字列です。- 値は単精度です
さらに検索した後、ここで同様の質問を見つけ(http://goo.gl/uqlw0U)、それを試しました:
しかし、アクセスは「更新可能なクエリが必要です」と言っているだけです - それはどういう意味ですか?