お世話になっております。
下記のVBAでコードを数値型からテキスト型に変更したところ、「抽出条件でデータ型が一致しません。」というエラーが出ました。
デバッグをクリックすると、dbs.Execute strSQLの部分が黄色に反転しています。

VBAはあまり詳しくありませんので、エラーが出なくなる方法を教えていただければ助かります。
よろしくお願いいたします。


Private Sub 在庫差引_Click()

Dim dbs As Database
Dim rst As Recordset
Dim strSQL As String

Set dbs = CurrentDb
Set rst = Me!サブフォーム.Form.RecordsetClone

With rst
.MoveFirst
Do Until .EOF
strSQL = "UPDATE マスター " & _
"SET 在庫数 = NZ(在庫数) - " & Nz(!数量, 0) & " " & _
"WHERE コード = " & !コード
dbs.Execute strSQL
.MoveNext
Loop
.Close
End With

End Sub

A 回答 (1件)

> "WHERE コード = " & !コード



 "WHERE コード = '" & !コード & "'"
あるいは
 "WHERE コード = """ & !コード & """"
ですね。
前者の方が分かりやすいと思います。

こちらを参考にして、データ型の違いをマスターしてください。

クエリの抽出条件の例
http://office.microsoft.com/ja-jp/access-help/HA …
    • good
    • 0
この回答へのお礼

早々にありがとうございました。
おかげさまで正常に動作するようになりました。
また、わかりやすいページを教えていただき、ありがとうございました。

お礼日時:2011/04/07 12:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルの、複数条件指定の合計を出すSUMIFS関数の末尾の「 S」は、何の意味でしょうか?

エクセルの、複数条件指定の合計を出す、SUMIFS関数の末尾の「 S」は、何の意味でしょうか?
別にある単数条件指定の合計を出す関数の「SUMIF」関数との区別で気になっています。

詳しい方がいましたら、ご回答、よろしくお願いします。

Aベストアンサー

こんにちは!

SUMIF関数は検索条件がひとつの場合の「合計」に使用する関数ですが、
SUMIFS関数関数は複数条件に対応できる関数になります。
その意味での「s」になるのではないでしょうか?

※ Excel2007以降では同じような関数で
COUNTIFS関数・AVERAGEIFS関数等が準備されています。m(_ _)m

Qaccess2007のvbaの配列で配列に入っているデータの数を知りたい

配列にデータが連続で入っている。飛び飛びにはなっていない。
データは配列に必ずに順番に入っている。

この時に最後のデータの要素の配列の番号を知りたい。
配列の要素に関しては、データの数が分からないので多めに取ってはある。

こう言うのは例えばperlの言語に於いては、簡単に$#配列の名前で分かりますが。
access2007のvbaではこれと似た様な事は出来るのでしょうか。

例えば、下記のコードでaの配列の要素の数を知りたい時に、
配列の数を100と返すのでは無く、きちんとここでは3を返す様な関数
と言うのはあるのでしょうか。

Dim a(100) As String
a(0) = "4555"
a(1) = "3333"
a(2) = "eee"


宜しくお願いします。

Aベストアンサー

>配列の数を100と返すのでは無く、きちんとここでは3を返す様な関数と言うのはあるのでしょうか。

VBAには配列が空かどうか一括で調べる関数はありませんので、自作するしかありません。
以下の様な具合で、取得するといいでしょう。

Dim a(100) As String
a(0) = "4555"
a(1) = "3333"
a(2) = "eee"

'中身が空でない配列の数を取得
For Each b In a
If b <> "" Then i = i + 1
Next

Msgbox i

Qエクセル関数(IF)のある条件公式の意味は?

ある商品の売買に関する下記のエクセル関数(IF)のある条件公式の意味がわかりません。
どなたか、教えていただけましたら嬉しく思います。

fx=IF(H28>$F$6,IF(F28>1,"売","-"),
IF(H28<-$F$6,IF(F28>1,"買","-"),"-"))

前半の部分は、Fから6(?)の値がH28の値よりも小さいとき、
かつF28の値が1よりも大きいときは売。
後半の部分はFから6(?)の値がH28よりも大きいとき、
かつF28の値が1より大きいときは買。
という指示ではないかと思いますが正しいのでしょうか?

この条件の公式なのですが、意味がわかりません。
よろしくお願いします。

Aベストアンサー

参考に
=IF(F28>1,IF(H28>$F$6,"売",IF(H28<-$F$6,"買","-")),"-")
式をこのようにすることもできます。
売買の条件
1.F28>1 であること
2.H28>F6 ならば 「売」
3.H28<-F6 ならば 「買」
4.1~3に当てはまらない場合はすべて 「-」

QACCESSのSQLで数値型に変換するには

こんにちわ。今SQLの書き方が分からなくて大変困っております。
ACCESS2000で、テーブルが一つあるとします。
テーブルの内容は、氏名・点数の2項目だとします。

点数が50点より大きい人を抽出したいのですが、
項目は全てSTRING型にしないといけないため、
単純に比較できません。抽出した項目を数値型に
変換して、比較したいのですが、どのように書いたらいいのでしょうか。

SELECT  Shimei , CAST(Tensuu AS NUMERIC)
FROM   Table1
WHERE   Tensuu > 50;

このようなクエリを書いてみましたがエラーが出てしまいます。
ORACLEではTO_NUMBERなどの関数があると思うのですが、
ACCESSではどのようにしたらいいのでしょうか??
よろしくお願いします。

Aベストアンサー

この程度か?

SELECT テーブル1.Shimei, CInt([Tensuu]) AS 得点
FROM テーブル1
WHERE (((CInt([Tensuu]))>50));

それではヘルプでCIntでも確認してね。

Qこのポイント獲得条件の意味がわからないんですけど分かりやすく説明してくれる方お願いします(T_T)

このポイント獲得条件の意味がわからないんですけど分かりやすく説明してくれる方お願いします(T_T)

Aベストアンサー

「インストールしてアプリ起動」と書いてありますね。そのままです。
上のボタンから、AppStoreにへ入って、ダウンロード。アプリ起動です。
大抵はアプリ起動後にブラウザが勝手に立ち上がります。遷移しない場合はポイント付かない(失敗)してる事が多いです。(なお、失敗したと思ってやり直し2度めインストールしても付きません。1度インストールしてるため)

こういったポイント付くと書いてあっても、ポイント付かない場合もあります。
特定のゲーム会社のもので付かないという事があります。(偽広告?)
すぐポイントと書いてあっても、5分後ぐらいの事もあります。

QAccessで数値型にNULLをInsertするとエラー

AccessVBAで数値型にNULLをInsertするとエラー(3134)になりますが、
その項目は必須項目にはしたくないので、
Insertする前にNULLが飛んできます。
そういった場合は、NULLかどうか判定して明示的に0をセットしてからInsertする方法しかないでしょうか。
あくまで取扱う情報は数値なので、数値型にしたいのですが、
NULLの可能性もある場合はテキスト型にするのが一般的なのでしょうか。
何か良い方法がありましたら教えてください。

尚、まだDBにはテストデータしか入っていないので、テーブルの変更は問題ありません。

Aベストアンサー

> AccessVBAで数値型にNULLをInsertするとエラー(3134)になりますが、

エラー(3134)は「構文エラー」ですから
テーブルの問題ではありません。

 INSERT INTO テーブル ( テキスト項目, 数値項目 )
 VALUES ('ABC', 100);
のようになるべきところ、
数値項目に代入する値が NULL のため
 VALUES ('ABC', );
になっているためでしょう。
 VALUES ('ABC', NULL);
になるように SQL を組み立ててください。
例)
 Nz(Me.テキストボックス名,'Null')
とか,
あるいは、このような関数をかませるとか。
Function SQLNumber(Value As Variant) As String
  If IsNumeric(Value) Then
    SQLNumber = Value
  Else
    SQLNumber = "'Null'"
  End If
End Function

> AccessVBAで数値型にNULLをInsertするとエラー(3134)になりますが、

エラー(3134)は「構文エラー」ですから
テーブルの問題ではありません。

 INSERT INTO テーブル ( テキスト項目, 数値項目 )
 VALUES ('ABC', 100);
のようになるべきところ、
数値項目に代入する値が NULL のため
 VALUES ('ABC', );
になっているためでしょう。
 VALUES ('ABC', NULL);
になるように SQL を組み立ててください。
例)
 Nz(Me.テキストボックス名,'Null')
とか,
あるいは、このような関数をかませると...続きを読む

Q戦略的互恵関係の成立条件とその意味とは?

戦略的互恵関係の成立条件とその意味とは?

最近、国会の予算委員会をラジオで聞いていると「戦略的互恵関係」という言葉が頻繁に聞こえてくるのですが、意味がわからないのです。
まあ、主義主張が同じ国であれば「互恵関係」は成立すると思いますが、主義主張が全く異なる国との間に「戦略的互恵関係」など存在し得ないように思うのですが、どのような考えや哲学で主義主張が全く異なる国家間で「戦略的互恵関係」なるものが成立するものなのでしょうか?
成立するとなれば、どのようなものでしょうか? 
強いて追加すると、北朝鮮とは「戦略的互恵関係」は成立しないですよね。同質同根の中国とも同じですよね。
どういう成立条件で何を意味するのかをお教え願いたい。

Aベストアンサー

+共産主義を標榜する共産党の答弁の方がむしろ哲学的ですね。では彼らはなんなのでしょうね。

原理主義者です。

原理主義者には、聖書・聖典があります。

工作部員とプランナーの役割分担と言い換えることでしょう。

鉄砲玉兵卒とイマームといっても良いかもしれません。

社会主義者を装う共産主義者の特徴として

孤立する(自分はゲリラだと思っている)。
人間はうんざり。(家族関係がギクシャクしている)
世界の景色こそ大事。人間は邪魔。

基本的に組織はいらないと主張するが、
政党・病院は、戦略的互恵関係に基づき、常に組織は利用している。
損をしたと感じたら、社会性がないと主張する。(愛は損得関係だと思っている)

「宗族社会」を理想の社会と思い込み、「変な過疎村」が現存する原始共産主義だと勘違いしている)
自分の考えが聖典。(そういう意味では新教キリスト的)

共産党は政権を取れないから投票しない。というのも戦略的互恵関係です。
同党が政権を取れば真っ先に指導的立場に就職したいと思っている。

民主党に対してそう考えているように、
共産党が、政権をとれば
いままでこの党には何かあると思っていた。と饒舌さを発揮し、取り入ろうとするはずです。

自己中心を基礎とした戦略的どっちつかず。
便所に行くことさえ「精神的充足」と名づける「俗物唯物論者」です。
自分に合う人がいないといつも半泣きの顔をさらけ出している不幸な人たちです。

+共産主義を標榜する共産党の答弁の方がむしろ哲学的ですね。では彼らはなんなのでしょうね。

原理主義者です。

原理主義者には、聖書・聖典があります。

工作部員とプランナーの役割分担と言い換えることでしょう。

鉄砲玉兵卒とイマームといっても良いかもしれません。

社会主義者を装う共産主義者の特徴として

孤立する(自分はゲリラだと思っている)。
人間はうんざり。(家族関係がギクシャクしている)
世界の景色こそ大事。人間は邪魔。

基本的に組織はいらないと主張するが、
政党・病院は、戦略的互...続きを読む

QAccess2007 コードを2行で記述する方法

お世話になっています。

Access2007でコードの記述をしています。
下記のように記述しているのですが、条件が長く、文字数が超えてしまい1行で記述できません。
簡略化して1行で記述する方法 もしくは 2行で記述する方法を教えてください。

Me.Filter = "[F1] Like '*" & Me![検索word] & "*'" & "or [F2] Like '*" & Me![検索word] & "*'" & "or [F3] Like '*" & Me![検索word] & "*'" & "or [F4] ・・・・・

『[F1]、[F2]、[F3]・・・』の部分が、30項目あります。他の部分は、『[検索word]』を含め全て同じ内容です。

よろしくお願いします。

Aベストアンサー

Me.Filter = "[F1] Like '*" & Me![検索word] & "*'" & _
"or [F2] Like '*" & Me![検索word] & "*'" & _
"or [F3] Like '*" & Me![検索word] & "*'" & _
"or [ F4] ・・・・・

""の外のスペースのところに
スペース+アンダーバー+改行
を入れます

Q不問求人条件にかかる特記事項・・・ 意味?

求人情報に以下の用語がありましたが、何を意味しているのでしょうか?

不問求人条件にかかる特記事項正社員雇用(試用期間3ヶ月:賃金同じ)

このように、ハローワークや求人情報特有の言葉をわかりやすく解説したサイトなどありますか?

Aベストアンサー

正社員だけれど試用期間が3ヶ月ありますという意味です。
特記事項なので、注意すべき項目という意味かと思います。

ハローワークの独特の用語の参考になるかどうかわかりませんが
ハローワークインターネットサービス+転職サイトの情報を
両方掲載しているサイトがあるのでよければ参考までに。

参考URL:http://www.indivision.jp/promo/guide.html?banner_id=ad_hw

QAccess VBAからエクセルに出力時の改行コード

こんにちは。
VBAのローカルテーブルのデータをエクセルに出力するという処理を
作っています。
データには改行コードも含まれており、
エクセルに出力すると、改行が「・」(中点)で表示されてしまい、
困っていろいろ調べてみたら、以下のURLのサイトを見つけて
http://support.microsoft.com/kb/822372/ja
解消できた!と思ったのですが、ローカルテーブルでメモ型のフィールドが
あるのですが、そのメモ型の項目のデータだけ、改行が「・」で
表示されてしまっています。

メモ型はダメなのでしょうか?
何かご存知の方いらっしゃいましたら宜しくお願いいたします。

Aベストアンサー

>メモ型はダメなのでしょうか?
そんあことはありません。

問題のテーブルをデータシートビューで開いた時、ちゃんと改行
されて見えていますか?
ここでも「・」だとしたら、そのまま出力されてしまったのでしょう。
UNIXの生データですと、改行はLFだけなので、次のコードを試して
見てください。
Text = Record.Field("メモ").Value
Text = Replace(Text, vbLf, vbCrLf)
Cells(行, 列).Value = Text

クエリの場合は以下の通りです。
Replace([メモ], Chr(10), Chr(13) & Chr(10))


人気Q&Aランキング

おすすめ情報