Excel - VBA から dbf ファイルを作成します。 Excel からの dbf ファイルの作成 - VBA データ検索およびフィルタリング ツール

DBF は、さまざまなプログラム間で、主にデータベースやスプレッドシートを管理するアプリケーション間でデータを保存および交換するための一般的な形式です。 古くなったとはいえ、今でもさまざまな分野で需要があり続けています。 たとえば、会計プログラムは引き続きこのフォーマットと積極的に連携しており、規制当局や政府機関はこの形式のレポートの大部分を受け入れています。

しかし、残念ながら、Excel 2007 以降、Excel はこの形式の完全なサポートを停止しました。 現在、このプログラムでは DBF ファイルの内容を表示することのみが可能であり、アプリケーションの組み込みツールを使用して指定された拡張子でデータを保存することはできなくなります。 幸いなことに、Excel のデータを必要な形式に変換するための他のオプションがあります。 これをどのように行うことができるかを見てみましょう。

Excel 2003 以前のバージョンのプログラムでは、標準の方法を使用して DBF (dBase) 形式でデータを保存できました。 これを行うには、項目をクリックする必要がありました "ファイル"水平アプリケーション メニューで をクリックし、開いたリスト内の位置を選択します。 「名前を付けて保存…」。 開いた保存ウィンドウで、リストから目的の形式の名前を選択し、ボタンをクリックする必要があります。 "保存".

しかし、残念ながら Excel 2007 以降、Microsoft 開発者は dBase は時代遅れであり、最新の Excel 形式は完全な互換性を確保するために時間と費用をかけるには複雑すぎると考えていました。 したがって、Excel は DBF ファイルを読み取る機能を保持していましたが、組み込みソフトウェア ツールを使用してこの形式でデータを保存するためのサポートは廃止されました。 ただし、アドインやその他のソフトウェアを使用して、Excel に保存されたデータを DBF に変換する方法がいくつかあります。

方法 1: WhiteTown コンバーター パック

Excel から DBF にデータを変換できるプログラムは数多くあります。 Excel から DBF にデータを変換する最も簡単な方法の 1 つは、さまざまな拡張機能を持つオブジェクトを変換するためのユーティリティのパッケージである WhiteTown Converters Pack を使用することです。

このプログラムのインストール手順はシンプルで直感的ですが、いくつかのニュアンスを指摘しながら詳しく説明します。

  1. インストーラーをダウンロードして起動すると、すぐにウィンドウが開きます。 インストールウィザードをクリックすると、その後のインストール手順のために言語を選択するよう求められます。 デフォルトでは、Windows のコピーにインストールされている言語が表示されますが、必要に応じて変更できます。 ここではそんなことはせず、ただボタンを押すだけです。 "わかりました".
  2. 次に、ウィンドウが開き、ユーティリティがインストールされるシステム ディスク上の場所が示されます。 デフォルトでは、これはフォルダーです "プログラムファイル"ディスク上 「C」。 ここも何も変更せずに キーを押した方が良いです "さらに遠く".
  3. 次にウィンドウが開き、希望する特定の変換方向を選択できます。 デフォルトでは、利用可能なすべての変換コンポーネントが選択されています。 ただし、各ユーティリティがハード ドライブのスペースを占有するため、すべてをインストールしたくないユーザーもいるかもしれません。 いずれの場合も、項目の横にチェックマークが付いていることが重要です。 「XLS(Excel)→DBFコンバータ」。 ユーザーは、ユーティリティ パッケージの残りのコンポーネントを自分の判断でインストールすることを選択できます。 設定後は忘れずにボタンをクリックしてください。 "さらに遠く".
  4. この後、フォルダーにショートカットを追加するウィンドウが開きます。 "始める"。 デフォルトでは、ショートカットは次のように呼ばれます 「ホワイトタウン」ただし、必要に応じて名前を変更できます。 ボタンを押す "さらに遠く".
  5. 次に、デスクトップにショートカットを作成するかどうかを尋ねるウィンドウが開きます。 追加したい場合は、対応するパラメータの横にチェックマークを付けたままにし、追加したくない場合はチェックを外します。 そしていつものようにボタンを押してください "さらに遠く".
  6. この後、別のウィンドウが開きます。 基本的なインストールパラメータを示します。 ユーザーが何かに満足できずパラメータを編集したい場合は、 ボタンを押します。 "戻る"。 すべてが正常であれば、ボタンをクリックしてください "インストール".
  7. インストール手順が開始され、その進行状況が動的インジケーターによって表示されます。
  8. 次に、このパッケージのインストールに対する感謝の意を表す英語の情報メッセージが開きます。 ボタンを押す "さらに遠く".
  9. 最後のウィンドウで インストールウィザード WhiteTown Converters Pack プログラムが正常にインストールされたことが報告されています。 私たちがしなければならないのはボタンを押すことだけです "完了".
  10. この後、 「ホワイトタウン」。 特定の変換領域のユーティリティ ショートカットが含まれています。 このフォルダーを開きます。 WhiteTown パッケージには、さまざまな変換分野に対応する多数のユーティリティが含まれています。 さらに、各方向には、32 ビットおよび 64 ビット Windows オペレーティング システム用の個別のユーティリティがあります。 という名前のアプリケーションを開きます 「XLSからDBFへのコンバーター」、OSのビット数に対応します。
  11. XLS から DBF へのコンバーター プログラムが開始されます。 ご覧のとおり、インターフェースは英語ですが、直感的に操作できます。

    タブがすぐに開きます "入力" ("入力")。 これは、変換する必要があるオブジェクトを示すことを目的としています。 これを行うには、ボタンをクリックしてください "追加" ("追加").

  12. この後、オブジェクトを追加するための標準ウィンドウが開きます。 その中で、xls または xlsx 拡張子を持つ必要な Excel ワークブックが配置されているディレクトリに移動する必要があります。 オブジェクトが見つかったら、その名前を選択してボタンをクリックします。 "開ける".
  13. ご覧のとおり、この後、オブジェクトへのパスがタブに表示されました "入力"。 ボタンを押す "次" ("さらに遠く").
  14. この後、自動的に 2 番目のタブに移動します "出力" ("結論")。 ここでは、DBF 拡張子を持つ完成したオブジェクトがどのディレクトリに出力されるかを指定する必要があります。 完成したDBFファイルを保存するフォルダーを選択するには、ボタンをクリックします。 "ブラウズ..." ("ビュー")。 2 つの項目からなる小さなリストが開きます "ファイルを選ぶ" (「ファイルを選択してください」) そして "フォルダーを選択" ("フォルダーを選択")。 実際、これらの点は、保存フォルダーを示すためにさまざまな種類のナビゲーション ウィンドウを選択することを意味するだけです。 私たちは選択をします。
  15. 最初のケースでは通常のウィンドウになります 「名前を付けて保存…」。 フォルダーと既存の dBase オブジェクトの両方が表示されます。 保存したいディレクトリに移動します。 次はフィールドで "ファイル名"変換後にオブジェクトをリストする名前を指定します。 その後、ボタンをクリックしてください "保存".

    オプションを選択した場合 "フォルダーを選択"をクリックすると、簡略化されたディレクトリ選択ウィンドウが開きます。 フォルダーのみが表示されます。 保存するフォルダーを選択してボタンをクリックします "わかりました".

  16. ご覧のとおり、これらのアクションのいずれかを実行すると、オブジェクトを保存するフォルダーへのパスがタブに表示されます。 "出力"。 次のタブに移動するには、ボタンをクリックします "次" ("さらに遠く").
  17. 最後のタブで 「オプション」 (「オプション」) 設定はたくさんありますが、最も興味があるのは 「メモ欄の種類」 (「メモ欄タイプ」)。 デフォルト設定が設定されているフィールドをクリックします。 「オート」 (「オート」)。 オブジェクトを保存するための dBase タイプのリストが開きます。 dBase で動作するすべてのプログラムがこの拡張機能を持つすべてのタイプのオブジェクトを処理できるわけではないため、このパラメータは非常に重要です。 したがって、どのタイプを選択するかを事前に知っておく必要があります。 6 つの異なるタイプから選択できます。
    • dBASE III;
    • フォックスプロ;
    • dBASE IV;
    • ビジュアルフォックスプロ;
    • >SMT;
    • dBASE レベル 7.

    特定のプログラムで使用するために必要なタイプを選択します。

  18. 選択後、実際の変換手順に進むことができます。 これを行うには、ボタンをクリックしてください "始める" ("始める").
  19. 変換手順が開始されます。 Excel ワークブックにデータが含まれる複数のシートがある場合、シートごとに個別の DBF ファイルが作成されます。 変換プロセスの完了は、緑色の進行状況インジケーターで示されます。 フィールドの端に到達したら、ボタンをクリックします。 "仕上げる" ("仕上げる").

完成したドキュメントは、タブで指定したディレクトリに配置されます。 "出力".

WhiteTown Converters Pack ユーティリティ パッケージを使用する方法の唯一の重大な欠点は、無料で実行できる変換手順は 30 件までであり、その後はライセンスを購入する必要があることです。

方法 2: XlsToDBF アドイン

サードパーティのアドオンをインストールすることで、アプリケーション インターフェイスを通じて Excel ワークブックを dBase に直接変換できます。 その中で最も優れており便利なものの 1 つは、XlsToDBF アドオンです。 その応用のためのアルゴリズムを考えてみましょう。

  1. アドインを含む XlsToDBF.7z アーカイブをダウンロードした後、そこから XlsToDBF.xla というオブジェクトを解凍します。 アーカイブには 7z 拡張子が付いているため、解凍はこの拡張子の標準プログラムである 7-Zip を使用するか、この拡張子の操作をサポートする他のアーカイバを使用して行うことができます。
  2. その後、Excelプログラムを起動し、タブに移動します "ファイル"。 次にセクションに移ります 「オプション」ウィンドウの左側にあるメニューから。
  3. 開いたパラメータウィンドウで、項目をクリックします。 「アドオン」。 ウィンドウの右側に移動します。 一番下にフィールドがあります "コントロール"。 その中のスイッチを位置に移動します 「エクセルアドイン」そしてボタンをクリックしてください "行く...".
  4. 小さなアドオン管理ウィンドウが開きます。 そこのボタンをクリックしてください "レビュー…".
  5. オブジェクトを開くウィンドウが開きます。 解凍された XlsToDBF アーカイブが存在するディレクトリに移動する必要があります。 同じ名前のフォルダーに移動し、その名前のオブジェクトを選択します 「XlsToDBF.xla」。 その後、ボタンをクリックしてください "わかりました".
  6. その後、アドオン管理ウィンドウに戻ります。 ご覧のとおり、名前がリストに表示されました 「XLS -> DBF」。 これが私たちの上部構造です。 その横にチェックマークが付いているはずです。 チェックマークがない場合はチェックを入れてボタンをクリックしてください "わかりました".
  7. ということで、アドオンがインストールされました。 次に、データを dBase に変換する必要がある Excel ドキュメントを開きます。ドキュメントがまだ作成されていない場合は、単純にシートにデータを入力します。
  8. ここで、変換の準備としてデータを操作する必要があります。 まず、テーブルのヘッダーの上に 2 行を追加します。 これらはシートの一番最初にあり、垂直座標バーに名前が表示されている必要があります。 「1」そして 「2」.

    左上のセルに、作成した DBF ファイルに割り当てる名前を入力します。 これは、名前自体と拡張子の 2 つの部分で構成されます。 ラテン文字のみが許可されます。 そのような名前の例としては、 「ユーチャストック.DBF」.

  9. 名前の右側の最初のセルでは、エンコーディングを指定する必要があります。 このアドインを使用するエンコード オプションは 2 つあります。 CP866そして CP1251。 セルの場合 B2空であるか、以外の値が設定されています。 「CP866」の場合、デフォルトのエンコーディングが適用されます CP1251。 必要と思われるエンコーディングを設定するか、フィールドを空のままにします。
  10. 次に次の行に進みます。 実際、dBase 構造では、フィールドと呼ばれる各列が独自のデータ型を持っています。 このような指定があります。
    • N(数値) – 数値。
    • L(論理的) – 論理的。
    • D(日付) – 日付。
    • C(文字) – 文字列。

    また、文字列内には ( CNN) および数値型 ( んん) 文字形式の名前の後に、フィールド内の最大文字数を示す必要があります。 数値型で小数点以下の桁が使用されている場合は、ドット ( んんん).

    dBase 形式には他のタイプのデータ (メモ、一般など) もありますが、このアドオンはそれらを扱うことはできません。 ただし、Excel 2003 では、DBF への変換がまだサポートされていましたが、DBF と連携できませんでした。

    私たちの特定のケースでは、最初のフィールドは幅 100 文字の文字列になります ( C100)、残りのフィールドは 10 文字幅の数値になります ( N10).

  11. 次の行にはフィールドの名前が含まれています。 しかし実際には、それらも私たちのようにキリル文字ではなく、ラテン文字で入力する必要があります。 また、フィールド名にはスペースを使用できません。 これらのルールに従って名前を変更します。
  12. この後、データの準備は完了したと見なされます。 マウスの左ボタンを押したままカーソルを使用して、シート上のテーブル範囲全体を選択します。 次にタブに移動します "開発者"。 デフォルトでは無効になっているため、さらに操作を行う前にこれを有効にしてマクロを有効にする必要があります。 次に、設定ブロックのリボン上で "コード"アイコンをクリックします 「マクロ」.

    ホットキーの組み合わせを入力すると、少し簡単になります。 Alt+F8.

  13. マクロウィンドウが開きます。 フィールド内 「マクロ名」アドインの名前を入力してください 「XlsToDBF」引用符なし。 レジスターは重要ではありません。 次に、ボタンをクリックします "走る".
  14. マクロはバックグラウンドで処理を実行します。 この後、ソース Excel ファイルが配置されている同じフォルダーに、セルで指定した名前で DBF 拡張子を持つオブジェクトが作成されます。 A1.

ご覧のとおり、この方法は前の方法よりもはるかに複雑です。 さらに、使用するフィールドの種類の数と、DBF 拡張機能を使用して作成するオブジェクトの種類はかなり制限されています。 もう 1 つの欠点は、dBase オブジェクト作成ディレクトリを割り当てることができるのは、変換手順の前に、ソース Excel ファイルを宛先フォルダに直接移動することによってのみであることです。 この方法の利点の中で、前のオプションとは異なり、完全に無料であり、ほとんどすべての操作が Excel インターフェイスを通じて直接実行されることが挙げられます。

方法 3: Microsoft Access プログラム

新しいバージョンの Excel には DBF 形式でデータを保存する方法が組み込まれていませんが、それでも、Microsoft Access アプリケーションを使用するオプションが標準と呼ぶのに最も近い方法です。 実際、このプログラムは Excel と同じメーカーからリリースされ、Microsoft Office パッケージにも含まれています。 さらに、サードパーティのソフトウェアを使用する必要がないため、これは最も安全なオプションです。 Microsoft Access は、データベースを操作するために特別に設計されています。

  1. シート上の必要なデータをすべて Excel に入力した後、シートを DBF 形式に変換するには、まず Excel 形式のいずれかで保存する必要があります。 これを行うには、プログラム ウィンドウの左上隅にあるフロッピー ディスク アイコンをクリックします。
  2. 保存ウィンドウが開きます。 ファイルを保存するディレクトリに移動します。 このフォルダーから、Microsoft Access で開く必要があります。 ブック形式はデフォルトの xlsx のままにすることも、xls に変更することもできます。 この場合、ファイルを DBF に変換するためだけに保存​​しているため、これは重要ではありません。 すべての設定が完了したら、 ボタンをクリックします "保存"そして Excel ウィンドウを閉じます。
  3. Microsoft Access プログラムを起動します。 タブに移動 "ファイル"、別のタブで開いた場合。 メニュー項目をクリックします "開ける"、ウィンドウの左側にあります。
  4. ファイルを開くウィンドウが開きます。 Excel 形式のいずれかでファイルを保存したディレクトリに移動します。 ウィンドウに表示するには、ファイル形式スイッチを の位置に移動します。 「Excelワークブック(*.xlsx)」または 「Microsoft Excel (*.xls)」、本が保存された場所に応じて異なります。 必要なファイルの名前が表示されたら、それを選択してボタンをクリックします "開ける".
  5. ウィンドウが開きます 「スプレッドシートリンク」。 これにより、Excel ファイルから Microsoft Access にデータをできるだけ正確に移動できます。 データをインポートする Excel シートを選択する必要があります。 実際、Excel ファイルに複数のシートの情報が含まれている場合でも、それを個別に Access にインポートし、それに応じて個別の DBF ファイルに変換することしかできません。

    個々の範囲の情報をシートにインポートすることもできます。 しかし、私たちの場合、これは必要ありません。 スイッチを の位置に設定します "シート"をクリックし、データを取得するシートを選択します。 情報表示の正確性はウィンドウの下部で確認できます。 すべて問題なければ、ボタンを押してください。 "さらに遠く".

  6. 次のウィンドウで、テーブルにヘッダーが含まれている場合は、次のボックスにチェックを入れる必要があります。 「最初の行には列ヘッダーが含まれます」。 次に、ボタンをクリックします "さらに遠く".
  7. 新しいスプレッドシート リンク ウィンドウでは、リンクされたアイテムの名前を必要に応じて変更できます。 次に、ボタンをクリックします "準備ができて".
  8. この後、テーブルと Excel ファイルのリンクが完了したことを示すダイアログ ボックスが開きます。 ボタンをクリックしてください "わかりました".
  9. 最後のウィンドウで割り当てたテーブルの名前が、プログラム インターフェイスの左側に表示されます。 マウスの左ボタンでそれをダブルクリックします。
  10. この後、ウィンドウにテーブルが表示されます。 タブへの移動 「外部データ」.
  11. ツールボックスのリボンに "輸出"碑文をクリックしてください "さらに"。 開いたリストで項目を選択します 「dBaseファイル」.
  12. DBF 形式へのエクスポート ウィンドウが開きます。 フィールド内 "ファイル名"何らかの理由でデフォルトの場所が適切でない場合は、ファイルの保存場所とその名前を指定できます。

    フィールド内 「ファイル形式」 3 種類の DBF 形式のいずれかを選択します。

    • dBASE III(デフォルト);
    • dBASE IV;
    • dBASE5.

    形式が最新であるほど (シリアル番号が大きいほど)、その形式でデータを処理する機会が増えることを考慮する必要があります。 つまり、すべてのテーブル データがファイルに保存される可能性が高くなります。 しかし同時に、将来 DBF ファイルをインポートする予定のプログラムがこの特定の種類と互換性がある可能性は低くなります。

    すべての設定が完了したら、 ボタンをクリックします "わかりました".

  13. この後にエラー メッセージが表示される場合は、別の種類の DBF 形式を使用してデータをエクスポートしてみてください。 すべてがうまくいくと、エクスポートが成功したことを通知するウィンドウが表示されます。 ボタンをクリックしてください "近い".

作成された dBase 形式のファイルは、エクスポート ウィンドウで指定したディレクトリに配置されます。 その後、他のプログラムへのインポートなど、あらゆる操作を実行できます。

ご覧のとおり、最新バージョンの Excel には組み込みツールを使用してファイルを DBF 形式で保存する機能がないにもかかわらず、この手順は他のプログラムやアドインを使用して実行できます。 最も機能的な変換方法は、WhiteTown Converters Pack を使用することであることに注意してください。 ただし、残念ながら、無料変換の数は限られています。 XlsToDBF アドオンを使用すると、完全に無料で変換を実行できますが、手順ははるかに複雑です。 さらに、このオプションの機能は非常に制限されています。

「黄金の平均」は、Access プログラムを使用する方法です。 Excel と同様に、Microsoft によって開発されたため、サードパーティ アプリケーションと呼ぶことはできません。 さらに、このオプションを使用すると、Excel ファイルを数種類の dBase 形式に変換できます。 ただし、この指標では、Access は WhiteTown プログラムよりもまだ劣っています。

既存のデータベースを開いたり、新しいデータベースを作成したりできる無料のユニバーサル DBF エディター。 サイズが非常に小さく、フラッシュ ドライブから起動できると同時に、SQL クエリのサポートなど、DBF ファイルを操作するための高度なツールが多数備わっています。

スクリーンショットギャラリー

通常、このサイトでは幅広い読者が興味を持つであろうプログラムを取り上げていますが、今日の場合は完全に普通ではありません:)。 私はかつて、いくつかの政府機関で一種の「コンピュータ スペシャリスト」として働いていましたが、そこでは FoxPro ベースで実行されるさまざまなプログラムに対処する必要がよくありました...

これらすべてのアプリケーションの主な問題は、単純なユーザーがデータベースを簡単に台無しにしてしまい、標準的な手段では開けなくなってしまうことでした。そのため、データベースを復活させるには何らかの倒錯的な手段を使用する必要がありました (これは常に機能するとは限りません)。 「ワイルドユーザー」の「能力」を考慮すると:))。

そして数年後、私はもうそこで働いていないので、DBF データベースを編集するための新しい無料プログラムを追加するというシンプルな名前のリクエストを電子メールで受け取りました。 Sdbf。 では、それについて話しましょう :)

有料アナログとの比較

Sdbf は、その可搬性 (フラッシュ ドライブから動作可能!) と小さいサイズにもかかわらず、xBaseIII 仕様から最新の xVisualFoxPro まで、あらゆる DBF 形式のデータベースを作成、編集、エクスポートできるかなり高度なデータベース エディタです。 Sdbf の機能を、この種の最も高度なエディタの 1 つである DBF Commander Professional の機能と比較してみましょう。

上の表から、プログラムの機能がわずかに異なることがわかりますが、Sdbf は第一にポータブルであること (すべてのコンピューターマスターは必要なプログラムのセットをフラッシュドライブに保存することを好むため、これは通常重要です)、第二に、完全に無料です!

Sdbf の最初の起動

プログラムを実行するには、ダウンロードしたアーカイブから任意の場所に解凍し、生成された EXE ファイルを開くだけです。 次のような空のウィンドウが目の前に表示されます。

残念ながら、ドラッグ アンド ドロップはサポートされていないため、開始するには、「ファイル」メニューを呼び出し、新しいデータベースの「作成」または既存のデータベースの「開く」という 2 つの利用可能なアクションのいずれかを選択する必要があります。 既存のデータベースを開いてみましょう。

選択したデータベースの内容が表の形式で目の前に開きます。 「ゼロ」行にはフィールドの名前が表示され、最初の行から内容自体が表示されます。 コンテンツの下にはツールバーとステータスバーがあります。

後者では、データベース内のレコード数、エンコーディング、作成日、自動的に決定された形式など、非常に多くの有用なサービス情報が表示されます。 形式のうち、Sdbf は xBase の以前のバージョン (I および II) のみをサポートしているわけではなく、次のタイプの DBF ファイルを開いて作成できます。

  • xBase III - VII;
  • xクリッパー;
  • xFoxPro;
  • xVisualFoxPro。

データ検索およびフィルタリング ツール

Sdbf プログラムを使用すると、開いているデータベースの任意のセルを直接編集できますが、必要なセルを見つける必要があります...データベースが小さくて単純な場合、これは非常に迅速に手動で行うことができます。 ただし、レコードが数十、場合によっては数百ある場合、検索は非常に困難になる可能性があります。

しかし、これはそれほど問題ではありません。Sdbf には、不要なデータをフィルタリングして必要なものだけを表示できる複数のツールが一度に備わっているためです。

これらのツールは下部のツールバーにあります。 ここには、まず 8 つのナビゲーション ボタンがあり、データベース (矢印) 内を移動したり、エントリを追加/削除したり、変更を確認またはキャンセルしたりすることができます。 必要な機能は、9 番目のボタン「検索」から始まります。

ボタンをアクティブにすると、検索フォームのある小さなウィンドウが目の前に表示されます。 検索するテキストを指定し、ドロップダウン リストから検索するフィールドを選択する必要があります。 ここで「次を検索」ボタンをクリックすると、プログラムは現在の選択範囲に続く、探しているテキストを含む行を自動的に選択します。 ボタンをもう一度押すと、同じ必要なデータなどが含まれる現在の行の下の行が強調表示されます。

データベースでは、標準ではないセルの書式設定、つまり視覚的には表示されないが検索結果に影響を与える余分なスペース、タブ、その他の文字が発生することがあります。 このような場合、機能が正常に動作するには、検索ウィンドウの中央下部にある「形式に基づく」チェックボックスをオフにするだけで、検索された文字列が表示されます。

検索機能は、特定のデータの単一の出現を素早く見つける必要がある場合に便利です。 ただし、特定の情報のみを含む複数の行を一度に表示した方が便利な場合もあります。 この場合、2 番目の機能が役に立ちます (ボタンは検索ボタンの直後にあります) - 「フィルター」:

フィルタリングを有効にするには、まずクエリを正しく作成し、特別に指定されたフィールド (ツールバーの中央部分にあるボタンのすぐ後ろ) にクエリを入力する必要があります。 リクエストを行う原則は単純ですが、完全に明らかというわけではありません。 まず、データベース テーブルをフィルタリングするために必要なフィールドの名前を入力し、次にすべての行を検索するために必要な特定のテキストにフィルタ値を一致させる必要があります。

値を一重引用符で囲み、その後「フィルター」ボタン自体を押すと(押された状態になります)、指定されたフィールドに定義された値のみを含むデータを含むテーブルが取得されます(この例では、 「国」フィールドの値が「U.S.A」であるすべての行をフィルターで除外しました (名前の大文字と小文字は関係ありません)。 もう一度「フィルター」ボタンを押す(再度離す)だけで表を元に戻すことができます。

フィルタリング フィールドには、最も単純な条件「and」(複数のフィールドでクエリを絞り込むため)と「or」(さまざまなフィールドからデータを選択するため)を含めることができます。 残念ながら、Sdbf は除外クエリ (「not」など) をサポートしていませんが、以下で説明する別の方法でこの制限を回避できます。

ちなみに、フィルタリング要求を手動で入力しないようにするには、次のトリックを使用できます。フィルタリングするフィールド内の任意のエントリを選択し、「Alt+F」キーの組み合わせを押します (F4 ではありません :)))。 リクエストは自動的に生成され、値には「*」記号が含まれます。これは検索マスクであり、任意の数の任意の文字に一致します。

悲しいことに、これが Sdbf で使用できる唯一のタイプのマスクであり、さらに悲しいことに、1 つのリクエストに含めることができるマスクは 1 つだけです:(。したがって、同じフィールドを複数のパラメータでフィルタリングする必要がある場合は、次のようにする必要があります。 「and」演算子 (「CTRL+ALT+F」を押してリクエストを迅速に生成) または「or」(「SHIFT+ALT+F」) を使用します。

データベーステーブルに対するSQLクエリの実行

検索とフィルタリングは間違いなく優れていますが、常に便利であるとは限りません。 レコードの数が多いと、テーブルを解析するときに必要なデータを見失いやすくなります。 ただし、この場合、Sdbf には SQL クエリのサポートという優れた機能があります。

Sdbf でこのようなクエリを使用すると、次のことが可能になります。

  1. テーブルを動的にフォーマットし、特定の必須フィールド (SELECT および SELECT TOP ステートメント) のみの選択を作成します。
  2. あるデータベースから別のデータベースにデータをコピーします (INSERT FROM および INSERT INTO)。
  3. 特定の行の内容を変更および削除します (それぞれ UPDATE および DELETE)。
  4. グループ並列クエリ (UNION)。
  5. ピボットテーブル(PIVOT)を生成します。

クエリの操作を開始するには、ツールバーの右端にある「SQL クエリ」ボタンをクリックする必要があります。 ただし、そのようなアクションの結果は、いくぶん落胆するものになります。編集したばかりのデータベースの内容が消え、2 つのフィールドを持つ別の空のウィンドウが作業ウィンドウの上部に表示されます (上部にはデータ出力フィールドがあり、一番下は入力フィールドです)。

恐れないでください:)。 必要なデータベースの名前を示す下部フィールドに、必要な SQL クエリをすぐに入力するだけです。 この名前を覚えていない場合は、(右側の灰色の垂直バーをクリックして) Sdbf サイドバーをアクティブにすることができます。これには、以前に開いたすべてのデータベースがリストに表示されます。

また、作業をスピードアップするには、F1 キーを押してヘルプを呼び出すことで表示できるホット キーを覚えておくことをお勧めします。 それらは 3 つしかありませんが、適切なクエリを作成するプロセスを大幅に高速化できます。

したがって、「CTRL+スペース」の組み合わせは、利用可能なデータベース名のリストを含むポップアップウィンドウを表示します(サイドバーを見ないようにするため)。「CTRL+F」は、現在のオペレータの関数のリストを表示します。 「CTRL+Enter」を押すと、クエリ実行プロセスが開始されます。 さらに、入力フィールドを右クリックすると (コンテキスト メニューが呼び出されます)、Sdbf でサポートされている演算子のリストが表示されます。

前のスクリーンショットに戻って、そこでコンパイルされた最も単純なリクエストを見てみましょう。 これは「SELECT」演算子に基づいており、選択内容を返します。 選択パラメータは「*」です。これは任意のデータを表示することを意味しますが、データベース テーブル内の任意のフィールドの名前をカンマで区切って指定することもできます。

上で説明した選択は最も単純ですが、Sdbf を使用すると、より複雑なクエリを実行できます。 次のスクリーンショットでは、クライアントの名前、住んでいる都市、および国を含むフィールドで構成される動的に生成されたテーブルの選択が表示されます。 さらに、クライアントは居住国 (米国) によってフィルターされ、結果はアルファベット順に表示されます。

このクエリを分析すると、すでに述べたフィールドによる選択方法が、SELECT ステートメントの後にカンマで区切られていることがわかります。 次に、同じデータベース名の表示ですが、リクエストはそこで終わりません。

次のステップでは、リクエストの処理の結果として実行する必要がある主なオペレータ機能をリストします。 ここにはそのうちの 2 つがあります。

最初の「where」は、前に説明したフィルターに似ており、同様のアクションを実行します。これにより、条件に一致するレコードのみを選択できます。

2 番目の関数「order by」は、フィールドの 1 つ (この場合、クライアントの名前「NAME」を持つフィールド) によって取得された結果をアルファベット順 (「asc」パラメーター) または反転 (「説明」)の順序。

当然のことながら、ここで挙げた例も非常に原始的なものですが、SQL クエリの作成と処理の一般的な本質を反映しています。 これらについてさらに詳しく知りたい場合は、http://dimonchik.com/insert.html または https://www.sql.ru/articles/articles.aspx?g=SQL&s= のマニュアルを読むことをお勧めします。 0.

ちなみに、Sdbf の利点は、クエリの結果として得られたテーブルを新しいデータベースとしてエクスポートしたり、HTML、RTF、CSV ファイルとしてエクスポートできることです。 これを行うには、テーブル表示フィールドのコンテキスト メニューを呼び出し、適切な項目を選択するだけです。

メニューバーからの追加機能

Sdbf の基本的な機能は理解できましたが、これで終わりではありません。 多くの便利でユニークな関数がメニュー バーに隠されています。これはデータベースを開くために使用したものと同じです:) したがって、多くの便利な機能 (SQL クエリなしで実行できる場合もあります) は「テーブル」にあります。 」メニュー:

エンコーディングの変更やデータベースの結合などの「便利なこと」の中でも、一番下に「構造の変更」項目があります。 この項目により追加ウィンドウが開き、開いているテーブルのすべてのフィールドを完全に変更したり、新しいフィールドを追加したり、不要なセクションを削除したりできます (データベースを最初から作成する場合も同じウィンドウが開きます)。

具体的には、フィールドの順序、名前、タイプ、サイズ (セル内の文字数)、および精度 (ビット深度 - 通常はフィールドのタイプに応じて自動的に設定されます) を変更できます。

データベースを編集 (特に作成) するときに覚えておく必要がある唯一のことは、各タイプのデータベースには独自のフィールド タイプのセットがあり、それらは (主要な N、C、D を考慮しない場合) 異なることが多いということです。 たとえば、xClipper データベースは画像付きのフィールド (P、B) をサポートしていません。また、第 7 バージョンまでの xBase は自動インクリメント フィールド (+) をサポートしていません。 つまり、互換性について常に覚えておく必要があります:)。

メニュー バーを見ている間、「フィールド」メニューも忘れずに見てください。

ここには関数が 2 つしかありませんが、非常に便利です。 特に最初の「置き換え」。 これにより、指定したフィールドの列全体の値、またはデータベース全体の特定の単語や記号を迅速かつ自動的に置き換えることができます。

「計算」関数は Excel の自動計算式に似ており、フィールドの自動合計の検索、算術平均、最大値と最小値の計算などの数学的および統計的操作を実行する機会を与えてくれます。 当然のことながら、計算を実行するには、フィールドのタイプが数値 (N、F、I、O、B) である必要があります。

それほど明らかではありませんが、便利な最後の機能は、組み込みの HEX エディターです。

任意のセルのデータを編集できます。 これを行うには、変更する必要があるコンテンツを選択し、コンテキスト メニューの最後の項目である「16 進数で開く」を選択するだけです。 以上です。結果を編集して保存したり、すぐに印刷したりすることができます。

プログラムの長所と短所

  • 携帯性と小型サイズ。
  • ほぼすべての種類の DBF ファイルをサポート。
  • データベースを最初から作成する機能。
  • SQL クエリのサポート。
  • データの検索、フィルタリング、編集のための組み込みシステム。
  • フィルターに複数のマスクを指定することはできません。
  • 元に戻す機能はありません。

結論

Sdbf プログラムは、適度なサイズとシステム要件を備えているため、DBF データベースをすべてではないにしても、非常に多くのことを行うことができます。また、SQL クエリのサポートの実装により、一般に、データベースを新たなレベルへ! 彼らの助けを借りて、グラフィカル インターフェイスを通じて作業の多くの欠点を簡単に補うことができます。

私の意見では、最大の失望は、「CTRL+Z」の世界で最も些細な機能「最後の操作を元に戻す」が欠如していることでした。 (最も不快なことは、ユーザーが見落としや無知によって、たとえば、 、誤ってフィールド全体にオートコレクトを適用すると、データを返すことができなくなります:(

このため、このプログラムは機能的には十分以上の成功を収めていると言えますが、作業する前に、常に昔からの管理ルールである「バックアップを作成する」に従ってください。 そしてあなたは幸せになるでしょう:)

追伸 ソースへのオープンアクティブリンクが示され、Ruslan Tertyshny の著者が保持されることを条件として、この記事を自由にコピーおよび引用する許可が与えられます。

ADO で ADO を使用して Excel から dbf ファイルを作成する方法 混乱しました....具体的な情報です.... 1. dbf に接続します (および、ado を使用して他に接続できるものとその方法)。 2. dbf ファイルを作成します (その他のオプション)。 3.記録する。 4.保存。 5.終了。 情報をありがとう

このトピックで何を探すべきか、それとも完全に無視するべきか....ADO のトピックについては、トピックを作成した方が良いかもしれません....ADO の広範な使用

それがどうなるかは控えめに

タスクのコード: 「Excel からの dbf ファイルの作成」

テキスト

番組一覧

"::: ステージ 1 - homeDir=Wscript.ScriptFullName から実行している場所を決定します。 "::: これはファイルのフル パスです k=Instrrev(homeDir,"\") "::: "\ を探します" 最後に homeDir=left (homeDir,(k-1)) "::: これはディレクトリの純粋な名前です "::: ステップ 2 - ADO 接続と空のレコードセットを作成します Set Conn = CreateObject("ADODB .Connection") Set RS = CreateObject(" ADODB.Recordset") DSNName = "DRIVER=Microsoft dBase Driver (*.dbf);DBQ=" DSNName = DSNName & HomeDir "::: ステージ 3 - 接続を開きます Conn.Open DSNName "::: ステージ 4 - テーブルを作成する SQL 演算子の準備 SQL="create table Testtable (N1 Float, N2 Float)" "::: ステージ 5 - 実行 RS.Open sql,Conn,3,3 " ::: ステージ 6 - テーブルに 100 レコードを追加します。 i=1 ~ 100 の場合 SQL="テストテーブルの値に挿入 (" & cstr(i) & "," & Cstr(2*i-1) & ") " RS.Open sql,Conn,3,3 Next ":: : ステージ 7 - sum... SQL="テストテーブルから sum(N1),sum(N2) を選択" RS.Open SQL,Conn,3,3 SS1 =RS(0) SS2=RS(1) MsgBox SS1 MsgBox SS2 Rs.Close SQL="テーブル Testtable を削除" RS.Open sql,Conn,3,3 MsgBox "テーブルが削除されました!"

DBF は、前世紀の 80 年代に登場し、広く使用されているデータ ストレージ形式です。 この形式は、dBase DBMS ファミリで最初に使用されました。 dBase の人気と広範な使用により、多くの dBase に似たソフトウェア製品が作成され、総称して xBase と呼ばれます。 この形式はかなり古いものであるにもかかわらず、依然として広く使用されています。 この記事では、1C:Enterprise の DBF を使用する方法について説明します。

1C:Enterprise では、DBF 形式 (バージョン dBase III) のファイルを操作するために、特別なソフトウェア オブジェクト xBase が使用されます。 通常、このオブジェクトの操作で問題が発生することはありません。

注意!

DBF ファイルを扱うときは、ファイル名が制約 8.3 を満たす必要があることに注意してください。

注意!

xBase オブジェクトは、クライアント側とサーバー側の両方で使用できます。 それぞれの特定の問題を解決するときは、クライアントとサーバーの対話を通じて考える必要があります。

DBFファイルの読み取り

DBF ファイルからのデータの読み取りは、いくつかの連続した手順で実行されます。

  1. XBase オブジェクトの作成。
  2. ファイルを開く;
  3. ファイルのすべての行を順次反復処理し、フィールド値を読み取ります。
  4. ファイルを閉じます。
DBP = 新しい XBase; DBP。 OpenFile("D:\MyFile.dbf" ); // ステージ 2. ファイルを開く 真実のサイクル中 // ステージ 3. ファイルの行をループするレポート(DBF.NAME); DBP でない場合。 次へ() それから // 次のレコードの位置 アボート; endIf; エンドサイクル; DBP。 CloseFile(); // ステージ 4. ファイルを閉じる

ファイルの行を反復処理するために、わずかに変更されたアルゴリズムを使用できます。

まだDBFではありません。 AtEnd() ループ レポート (DBF.NAME); DBP。 次(); エンドサイクル;

DBFファイルへのアップロード

DBF ファイルへのアップロードの段階:

  1. XBase オブジェクトの作成。
  2. エンコーディングの指定 (指定しない場合は、ANSI エンコーディングが使用されます)。
  3. フィールドの説明。
  4. ファイルの作成。
  5. 線を追加して塗りつぶすループ。
  6. ファイルを閉じます。

例を使用してこのプロセスを見てみましょう。

DBP = 新しい XBase; // ステージ 1. XBase オブジェクトを作成する DBP。 エンコーディング = EncodingXBase。 OEM; // ステージ 2. エンコーディングの指定 DBP。 田畑。 Add("コード" , "S" , 9 ); // ステージ 3. フィールド名とタイプの説明 DBP。 田畑。 Add("名前" , "S" , 40 ); DBP。 CreateFile("D:\MyFile.dbf" ); // ステージ 4. ファイルの作成選択 = ディレクトリ。 命名法。 選ぶ(); さようなら、セレクション。 Next() DBP をループします。 追加(); // 行を追加 DBP。 コード = サンプル。 コード; // フィールド値を入力します DBP。 名前 = 選択。 名前; DBP。 書く(); // EndCycle という行を書き込みます。 DBP。 ファイルを閉じる(); // ステージ 6. ファイルを閉じる

エンコーディングを指定するときは、XBase Encoding タイプが使用されます。これは次の 2 つの値を取ることができます。

  • ANSI– Windows 形式。
  • OEM– DOS フォーマット。

構造を記述するときに新しいフィールドを追加する場合の構文は次のとおりです。

追加 (< Имя>, < Тип>, < Длина>, < Точность>)

次のタイプが使用可能です。

  • 「N」 – 数字。
  • 「S」 – 文字列。
  • 「D」 – 日付。
  • 「L」 – ブール値。
  • 「F」 – 「N」 – 番号と同様。

フィールド長は、「N」、「F」、および「S」フィールド タイプに必要です。

インデックスの操作

インデックス ファイルは DBF ファイルと組み合わせて使用​​でき、DBF ファイルには 1 つ以上のインデックスに関する情報が含まれる場合があります。 インデックスの存在により、ファイルのすべての行を順次検索するだけでなく、検索も使用できるようになります。

インデックス ファイルを作成するときは、以下を指定する必要があります。

  • インデックスのリスト。
  • インデックス ファイルを保存するパス (アップロードのステージ 4)。

インデックスファイルの作成例:

DBP 。 インデックス。 Add("INDCODE" , "CODE" ); DBP。 ファイルの作成("D:\MyFile.dbf" , "D:\index.cdx" );

新しいインデックスを追加するための構文は次のとおりです。

追加 (< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

DBF ファイルからの読み取り時にインデックスを使用するには、次の手順を実行します。

  • インデックス ファイルへのパスを指定します (ダウンロードの段階 2)。
  • 現在のインデックスを設定します。

インデックス ファイルを使用して DBF ファイルを開く例:

DBP 。 OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); DBP。 現在のインデックス = dbf。 インデックス。 インデックスコード;

注意!

DBF ファイルを開くと、ファイルの最初のレコードで位置決めが行われます。 ファイルの最初のエントリがインデックスの最初のエントリと一致しません。 このため、インデックスを使用する場合は、行を順番に走査する前に、インデックスの最初の行に位置する必要があります。 これは、次のように First() メソッドを使用して実行できます。

DBP。 初め();

検索には 2 つの関数のいずれかを使用できます。

  • 探す (< Ключ>, < Режим >) ;
  • FindByKey(< Режим >) .

両方の関数の結果として、(指定された条件を持つレコードが見つかったかどうかに関係なく) ブール型の値が返されます。 検索が成功すると、現在のポインタが見つかった行に設定されます。 次のいずれかの値を検索モードとして使用できます。

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

例を使用して DBF ファイル内の検索を見てみましょう。

DBP = 新しい XBase; DBP。 OpenFile("D:\MyFile.dbf" , "D:\index.cdx" ); // DBF ファイルを開くときに、追加のインデックス ファイルが指定されます DBP。 現在のインデックス = dbf。 インデックス。 インデックスコード; // 現在のインデックスを設定します // Find メソッドを使用して検索します。 DBPなら。 Find("000000003" , "=" ) 次に Report( + DBP.NAME); Else Report("見つかりません"); endIf; // FindByKey メソッドを使用して検索します。 DBP。 鍵。 コード = "000000002" ; DBPなら。 FindByKey("= ) then Report( 「見つかりました。アイテム名:」+DBP。 名前); Else Report("見つかりません"); endIf; DBP。 ファイルを閉じる();

DBF ファイル内のエントリの削除

レコードの削除は、Delete () メソッドを使用して行われます。

DBP 。 消去();

ただし、この方法を使用すると、レコードはファイルから完全に削除されず、削除済みとしてマークされます。 行を反復処理する場合、削除対象としてマークされたレコードはスキップされます。 削除対象としてマークされたエントリを含むファイル全体をクロールする場合は、プロパティを True に設定する必要があります。 表示削除済み xBase オブジェクト。 RecordDeleted() 関数を使用すると、レコードが削除対象としてマークされているかどうかを確認できます。 削除マークを削除するには、Restore() メソッドを使用します。

DBP 。 DisplayDeleted = True; まだDBFではありません。 AtEnd() DBP の場合のループ。 RecordDeleted() 次に DBP。 復元する(); endIf; DBP。 次(); エンドサイクル;

マークされたエントリを直接削除するには、Shrink() メソッドを使用します。

DBP 。 圧縮する();

ファイル内のすべてのエントリを直接削除する必要がある場合は、ClearFile() メソッドを使用できます。

DBP 。 クリアファイル();

ADO を使用した DBF からのロード

ADO テクノロジーを使用して DBF ファイルを操作できます。 ADO ドライバーは Windows オペレーティング システムに含まれているため、追加でインストールする必要はありません。

ADO テクノロジを使用して DBF ファイルから読み取るコードの例を見てみましょう。

ADO = 新しい COMObject("ADODB.Connection" ); // COM オブジェクトを作成しますアド。 開ける( "プロバイダ=Microsoft.Jet.OLEDB.4.0; |データ ソース=""D:\""; |拡張プロパティ=DBASE III"); DB = ADO。 Execute("MyFile から * を選択" ); // MyFile.DBF ファイルからすべてのレコードを取得するリクエストさようならBD。 EOF= 0 サイクル // DBF ファイル レコードをループします。 Report(DB. Fields("Name" ). value); // フィールド値へのアクセス例 DB。 MoveNext(); //次のエントリに移動エンドサイクル; アド。 近い();

示されている例では、接続文字列「Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\";Extended Properties=DBASE III」を使用しています。 この行では次のようになります。

  • プロバイダーは使用されるドライバーです。
  • データ ソース – DBF ファイルが配置されているパス。 パスはディレクトリに対して正確に指定されます。 ファイル名はクエリでテーブル名として使用されます。
  • 拡張プロパティ – DBF ファイルにアクセスする場合、これは必須パラメータです。 ファイル形式を指定できます

注意!

指定された方法を使用して読み取る場合、デフォルトのエンコードは OEM です。 エンコードを ANSI に変更するには、Windows レジストリで HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage パラメータを「ANSI」に設定する必要があります。

まだ質問がありますか?
記事のコメント欄で質問してください。

トピックの続き:
作り方

食べ物を制限せず、同時にスリムな人は、あなたを困惑させ、羨望の的を引き起こすでしょうか? あなたは味のない、健康的で低脂肪の食べ物を食べていますが...