テーブル(tblGeoData)を照会してフィールド(lngPopulation)に関数を使用できるように、VBAで関数を作成しようとしています。テーブル(tblGeoData)には複数の行があり、1年ごとに1つ(tblGeoData = lngYearのフィールド)です。必要な年は、グローバルコンストラクト(lngDataYr)で定義されます。そのため、関数はtblGeoData.lngPopulationを取得します。ここで、tblGeoData.lngYr = lngDataYr、lngDataYr-1、lngDataYr-2です。したがって、Global Const lngDataYrが2014に設定されている場合、この関数は2014年、2013年、および2012年にlngPopulationを取得します。次に、lngPopulationの3つの値を使用して平均変化率を計算します(簡略化のためにpopに短縮します)。変更率関数を作成する方法
AvgChangeRate =(2014年(ポップ - 2013年の2013年のポップ)/ポップ+ 2013(ポップ - 2012年のポップ)2012 /ポップ)/ 2
不確実なこの関数を作成するには、正確にどのように私はそれがあること絵lngPopulationだけではなく、どのフィールドでも使用できるようになり、2つの引数を持ちます.1つはフィールドで、もう1つはどの行を指定するかです。あなたは
SELECT tblGeoData.lngPopulation
FROM tblGeoData
WHERE tblGeoData.lngYear In(GetlngDataYr(),GetlngDataYr-1,GetlngDataYr-2);
しかし、それは同様にデータをプルする機能のためにいいだろう
を、私が追加しました:「公開機能PopRate()doubleとして」あなたのコードのために、私は加えた:「エンド機能」これはゼロを返したので、関数名をPopRateからAvgChangeRateに変更しました。これはdについてのエラーを返しましたeclarationsので、私は 'Dim AvgChangeRate As Double'を削除しました。今は期待どおりに動作します。関数名は出力の名前と同じである必要がありますか? – random13
申し訳ありません。私はそれを書いているように完全な機能を保持する答えを編集しました。 – Gustav