2010-12-07 13 views
0

MS Access 2007アプリケーションでは、[日付]、[SequenceNumber]、たとえば2010-12-07.013のドキュメント名を生成する必要があり、SequenceNumberは1にリセットされます。MySQL関数 - ODBC経由での戻り値

データの整合性を維持するために、シーケンス番号を返す関数をMySQLで作成したいと考えています。私は「配列」テーブルを設定します。

CREATE TABLE `doc_sequence_number` (
    `SequenceDate` date NOT NULL, 
    `SequenceNumber` int(11) NOT NULL, 
    `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`SequenceDate`,`SequenceNumber`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 

サーバーの日付、および1つインクリメントシーケンス番号を使用して、新しいレコードを作成し、SequenceDateとSequenceNumberはフィールドを返す必要がありますMySQLの機能。

  1. どのようにこのような関数を書くべきか誰にでも提案できます(これは私の最初のMySQL関数です)。

  2. VBAを使用して、このような関数のODBC経由で戻り値を呼び出して取得するにはどうすればよいですか?

これは私には新しく、これを達成する方法についてのご意見をお寄せいただきありがとうございます。 MTIA。

+0

かなり類似しているべきであるそして、あなたは、MS SQLからレコードを取得し、入力するために、VBAを使用することを求めていますmysqlに新しいレコード? –

+0

ドキュメントをサーバーにアップロードして保存しています。それらは別のドキュメントテーブルのレコードに関連しています。私がdocを(pdf形式で)アップロードすると、私はそれらの名前を変更する必要があります。だから私は、MySQLの機能がDate.SequenceNumber – maxhugen

答えて

1

私は、MySQLと多くの経験を持っていないが、私はMSSQLでそれをやっていた場合、私は、通常の自動インクリメントIDを持つテーブルを持つようになります。このテーブルは、そのレコードをクリアし、シーケンスは毎日1にリセットされます。私はその後、この一時テーブルにレコードを挿入し、IDを読み取るストアドプロシージャを設定します。それをサーバーの日付に付け加えます。これがファイル名です。 VBAでの値を返すためとして

、MSSQLについては、このリンクを見て、彼らは

http://bytes.com/topic/access/answers/205120-get-stored-procedure-output-value-back-vba

+0

おかげケビンされ、新しいファイル名を提供できると思っていた、自動インクリメントアイデアは良いですが、そのリンクは非常に便利になります!乾杯。 – maxhugen