私はいくつかのエージェントといくつかの航空会社からの価格を含むテーブルを持っていますが、それらは重量料金でグループに分けられました。アクセス2010年のVBAまたはテーブルのクエリと結果の計算
出発空港(POL/C)と到着(POD/C)によって、すべての料金がチェックされ、最高のものを使用する必要があります。しかし、価格の選択肢を示す。
各航空会社には独自の計算方法があるため、確認する必要があります。
ID = AutoNumber, Long Integer
A/CODE = Number, Long Integer
AGENT = Text,
POL/C = Text,
POL = Text,
POD/C = Text,
POD = Text,
IATA = Text,
Airline = Text,
UPDATE = Date/Time, Short Date
EXPIRY DATE = Date/Time, Short Date
CURRENCY = Text,
M/M = Number, Double (Minimum weight accepted)
-45 = Number, Double (price for the weight between 1 and 45)
+45 = Number, Double (price for the weight starting from 45 to 100)
+100 = Number, Double (price for the weight starting from 100 to 300)
+300 = Number, Double (price for the weight starting from 300 to 500)
+500 = Number, Double (price for the weight starting from 500 to 1000)
+1000 = Number, Double (price for the weight starting from 1000)
FSC = Number, Double
SSC = Number, Double
ScGw = Yes/No, Yes/No
FREQUENCY = Text,
TT = Number, Long Integer
T/S = Yes/No, Yes/No
開始から次のように、2点の重みを有するであろう:
表は、以下の情報が含まれ
- 実際の総重量(GW - 総重量)
計算重量ボリューム(VW)
GW> VWの場合。 計算に基づく高い値(GW)他 計算はより高い値(VW)に基づいている
例: VW = 405キログラムとGW = 222 KGSは次に高い値
FSCを使用しもしあれば、SSCが価格に追加されます。 (GW) 例: 航空貨物=ユーロ0.25/kgs(x 405 kgs VW) 燃料+安全=ユーロ() ここでは重量(VW)と計算された場合のScGw = (x220 kgs GW) ScGw =いいえ次に普通のVWを計算する 例: 航空貨物=ユーロ0.25/kgs(x 405 kgs VW) 燃料+セキュリティ=ユーロ1.1/kgs(x 405 kgs VW )
GWとVWの値は既に別の形式で計算されており、使用する必要があります。 出発空港(POL/C)と到着(POD/C)はすでに別の形式で選択されています。
私を助けることができれば、数日で解決策を見つけることができません。私は良い結果なしに全ページを書いています。 すべての方に感謝します。
私は、現時点では、エラーで立ち往生しています:
Run-time error ‘3061’:
Too few parameters. Expected 2
私は問題が何であるかを知らない...
Public Sub CalculPret()
Dim da As Database
Dim rec As Recordset
Dim PolCboV As String
Dim PodCboV As String
Dim strSQL As String
Dim GrossWeight As Double
Dim VolumeWeight As Double
Dim CalcWeight As Double
Dim CalcWeightScGw As Double
Dim CalcPrice As Double
Dim TotalPrice As Double
PolCboV = [Forms]![DimensionsQry]![PolCbo]
PodCboV = [Forms]![DimensionsQry]![PodCbo]
strSQL = "SELECT Prices_List.ID, Prices_List.[A/CODE], Prices_List.AGENT, Prices_List.[POL/C], Prices_List.POL, Prices_List.[POD/C], Prices_List.POD, Prices_List.IATA, Prices_List.AIRLINE, Prices_List.UPDATE, Prices_List.[EXPIRY DATE], Prices_List.CURRENCY, Prices_List.[M/M], Prices_List.[-45], Prices_List.[+45], Prices_List.[+100], Prices_List.[+300], Prices_List.[+500], Prices_List.[+1000], Prices_List.FSC, Prices_List.SSC, Prices_List.ScGw, Prices_List.FREQUENCY, Prices_List.TT, Prices_List.[T/S]"
strSQL = strSQL & " FROM Prices_List"
strSQL = strSQL & " WHERE (((Prices_List.[POL/C])=PolCboV) AND ((Prices_List.[POD/C])=PodCboV)); "
Set da = CurrentDb
Set rec = da.OpenRecordset(strSQL)
If rec.RecordCount = 0 Then
rec.Close
Exit Sub
Else
GrossWeight = [Forms]![DimensionsQry]![Text34]
VolumeWeight = [Forms]![DimensionsQry]![Text36]
If GrossWeight > VolumeWeight Then
CalcWeight = GrossWeight
Else
If ScGw = "Yes" Then
CalcWeight = GrossWeight
Else
CalcWeight = VolumeWeight
End If
End If
rec.MoveFirst
Do Until rec.EOF
Select Case CalcWeight
Case 1 To 44
CalcPrice = rec![-45]
Case 45 To 99
CalcPrice = rec![+45]
Case 100 To 299
CalcPrice = rec![+100]
Case 300 To 499
CalcPrice = rec![+300]
Case 500 To 999
CalcPrice = rec![+500]
Case Is >= 1000
CalcPrice = rec![+1000]
End Select
If CalcWeight = GrossWeight Then
CalcPrice = CalcPrice + rec!FSC + rec!SSC
TotalPrice = CalcPrice * CalcWeight
Else
TotalPrice = (CalcPrice * CalcWeight) + ((rec!FSC + rec!SSC) * GrossWeight)
End If
MsgBox TotalPrice
rec.MoveNext
Loop
End If
rec.Close
End Sub
0を望ん投票ダウン \t を受け入れる非常にトニーをありがとうございます! 現時点でエラーが発生しました。 実行時エラー '3061': パラメータが少なすぎます。予想される2 問題が何であるか分かりません。 –
@ Catalin Anton。私は私の答えに私が助けてくれることを願って余分なセクションを追加しました。 –
トニーありがとう!私はあなたから受け取ったアドバイスを使用しようとします。今のところ私はたくさんの情報を追加したので、私はその情報を使うことができます。 **とにかく私にスタートを与えました!** –