7

分割 Access データベース、つまり現在 2 つの mdb ファイル、フロントエンドとバックエンドに分割されているデータベースをアップサイズする必要があります。本質的に「アップサイジング ウィザードを実行してください」と言っている Web ページを多く見かけます。私の最初の非常に基本的な質問:

このウィザードをフロントエンド MDB またはバックエンド MDB で実行する必要がありますか?

メイン mdb -> バックエンド mdb -> sql サーバーをリンクしたくないと思います。バックエンド mdb でウィザードを実行してから、フロントエンド mdb で、バックエンド mdb ではなく SQL サーバーを指すようにリンク テーブルを変更する必要がありますか? もしそうなら、これはどのように行われますか?フロントエンド (バックエンド md にリンク) のテーブルを右クリックしてリンク テーブル マネージャーに移動すると、新しい mdb ファイルしか選択できないようです。

4

5 に答える 5

4

私はあなたの最初の推測に同意します。バックエンド mdb でウィザードを実行したいと思うでしょう。

ご想像のとおり、これが SQL Server に入ったら、フロント エンドをリンクして SQL Server データを操作する必要があります。これを行う 1 つの方法は、新しい SQL Server データベースの ODBC データ ソースを設定し、それをリンク テーブル マネージャーで選択することです。

  1. データ ソース (ODBC) ショートカットを開きます。XP Pro では、これは [コントロール パネル] の [管理ツール] にあります。(表示されない場合は、データ ソースを作成する権限がない可能性があるため、ネットワークの担当者と協力して作成する必要があります。) これにより、ODBC アドミニストレータが開きます。
  2. [ファイル DSN] タブで、[追加...] をクリックします。使用可能なドライバーの一覧が表示されます。[SQL Server] を選択し、[次へ] をクリックします。(フロント エンドがマシンでのみ使用されている場合は、代わりにシステム DSN を作成できます。)
  3. 共通の場所を見つけて、データ ソースに名前を付けます。
  4. [次へ] をクリックして [完了] をクリックします。これにより、データ ソースの最初の部分が設定され、SQL Server データ ソース ウィザードが開きます。
  5. データ ソースに名前を付け、アップサイズしたバックエンド データベースを配置したサーバーを選択します。
  6. 必要に応じて残りの設定を変更し (あまり変更する必要はないかもしれませんが、これらの変更の範囲によっては 2 つ目の質問が必要になる場合があります)、クリックして [完了] をクリックします。

データ ソースを設定したら、[外部データの取得] で、それをソースとして選択するオプションが表示されます。(2007 では、[外部データ] リボンからアクセスできます。ODBC データ ソースは [その他] で利用できます。)

Matt のフォローアップの質問に基づいて、もう少し詳しく説明します。

それをどのように行うかは、デザインの選択です。バックエンドの mdb をアップサイジングすることをお勧めします。これにより、Access にあったフォームなどを保持できるからです。データが SQL Server にある場合は、移行が少ないと思います。

アップサイズする前に、テーブルはバックエンド データベースにリンクされており、リンク テーブル マネージャーにリンクが表示されていました。ODBC データ ソースを設定してそれらのテーブルをリンクすると、そのリンクが表示されます。フロントエンド mdb ではリンクが同じように見える場合でも、リンクは実際には異なる種類のリンク (Access と ODBC) であるため、2 つの異なる方法でリンクを表示します。

于 2008-10-08T19:32:44.277 に答える
1

個人的に私は、アップサイジング ウィザードが正しいデータ型を決定するのに非常に悪い仕事をしていることに気付きました。必要なデータ型を使用して SQL サーバーで自分でテーブルを作成し、そのデータを Access から既存のテーブルに移動します。そうしないと、本当に 10 進数が必要なときに varchar または float を使用できるときに、テキスト データに固執することになります。

データを移動したら、Access テーブルを削除し、SQL Server テーブルにリンクします。

最初にデータベースのバックアップ コピーを作成せずに何もしないでください。

于 2008-10-08T19:39:35.667 に答える
0

フロントエンドを更新すると、アップサイズする前にバックエンドテーブルがインポートされます。私はこれを1週間前に行い、成功しました。

ただし、Yesの代わりに-1を使用するクエリは失敗します。主キーのないテーブルでの完全なテーブル削除は失敗し、パススルーSQLクエリを使用してテーブルを切り捨てるだけの場合とは異なる動作が得られます。切り捨てによりすべての行が削除され、Accessバージョンでは空白のままになる場合があります。

また、自動番号列データ型のテーブルでレコードセットを開く場合は、dbSeeChangesを含める必要があります。SQLはこれらをIdentityデータ型に変更し、テーブルを開こうとする前に不満を抱きます。幸運を。

于 2010-07-12T04:22:50.590 に答える
0

通常のパラノイアの問題として、既存のファイルのバックアップ コピーを作成し、フロント エンドでアップサイジング ウィザードを実行するだけです。望ましくないことが起こった場合は、バックアップ コピーで上書きして変更を元に戻してください。

于 2008-10-08T19:25:34.963 に答える