「日付条件」のDELETEできない
- access2003で、jyuu条件ではDELETEが出来るが、日付条件ではDELETEされない。
- gatuは、「日付/時刻型(日付(標準))」であり、jyuuは整数型
- プログラムの「日付条件」において、DELETEが実行されない理由を教えてください。
- ベストアンサー
「日付条件」のDELETEできない
access2003で、下記のプログラムを作りました。 コメント文の、「jyuu条件」ではDELETEが出来るのですが、 本プログラムの「日付条件」では、DELETEされません。 なぜでしょうか? なお、gatuは、「日付/時刻型(日付(標準))」です。 Private Sub テーブル削除() Dim db As Database Dim mysql As String Dim gappi As Date Dim jyuu As Integer gappi = #4/15/2011# jyuu = 220 'mysql = "DELETE FROM fff WHERE jyu <" & jyuu & " ; " mysql = "DELETE FROM fff WHERE gatu <" & gappi & " ; " Set db = CurrentDb db.Execute (mysql) db.Close End Sub
- grabcdef
- お礼率50% (3/6)
- Visual Basic
- 回答数3
- ありがとう数3
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
# で括ってみてください。 mysql = "DELETE FROM fff WHERE gatu <" & gappi & " ; " mysql = "DELETE FROM fff WHERE gatu <#" & gappi & "#; "
関連するQ&A
- Access VBA 日付で抽出できない?
次の質問にお答えいただけませんか。 フォームで抽出条件を入力しテーブルから抽出をするとき Dim db As DAO.Database Dim rs As DAO.Recordset Dim mySQL As String Set db = CurrentDb() mySQL = "SELECT * FROM T_明細 " _ & "WHERE 顧客ID = " & CStr(Me!txtKey) & ";" Set rs = db.OpenRecordset(mySQL, dbOpenDynaset) 上記のような記述をしました。 テーブル名:T_明細 フィールド:顧客ID 日付 金額 フォームの抽出条件入力テキストボックス:txtKey このとき顧客IDでの抽出は問題なく出来ましたが "WHERE 顧客ID = を "WHERE 日付 = に変更して日付で抽出をしたいのですがうまくいきません。 テーブルの日付フィールドは 書式をgee-mm-dd 定型入力を>L99\-99\-99;0;# で書き込みました。 フォームのtxtKeyテキストボックスのプロパティも書式をgee-mm-dd 定型入力を>L99\-99\-99;0;#に設定してあります。 このようなときは mySQL = "SELECT * FROM T_明細 " _ & "WHERE 日付 = " & CStr(Me!txtKey) & ";" の、記述を何か変更しないといけないような気もしますが 対処の方法を教えていただけませんか。
- ベストアンサー
- オフィス系ソフト
- ACCESSの SELECT SUM
SELECT SUMを 計算させると ゼロしか 出てきません。 どこが悪いのでしょうか? 日付 出金 氏名 2012/12/10 540 安田 2012/12/10 1020 斉藤 2012/12/10 970 TOM 2012/12/11 650 池田 2012/12/11 2010 南 2012/12/12 350 林田 2012/12/12 1200 加藤 のようなテーブルがあり Private Sub コマンド_click() Dim Db As Database Dim SQL As String Dim rs As Recordset Dim gokei As Long Set Db = CurrentDb SQL = "SELECT Sum(出金) as gokei FROM テーブル WHERE 日付= #" & [Forms]![フォームアルファ]![テキスト] & "# " Set rs = Db.OpenRecordset(SQL) MsgBox gokei End Sub を フォームアルファに 新しく作ったコマンドボタンのクリック時に 書きました。 これを テキストの日付を変えておいて いろいろ試しても ゼロのメッセージしか出ません。 WHERE以下が 間違っていないか 試しに Private Sub コマンド_click() Dim Db As Database Dim SQL As String Dim rs As Recordset Dim Count As Long Set Db = CurrentDb SQL = "SELECT (出金) FROM テーブル WHERE 日付= #" & [Forms]![フォームアルファ]![テキスト] & "# " Set rs = Db.OpenRecordset(SQL) If rs.EOF Then Count = 0 Else rs.MoveLast Count = rs.RecordCount End If MsgBox Count End Sub を 実行すると ちゃんと 正しいレコード数が 表示されます。 「出金」のデータ型は 長整数になっています。 どこが 悪いのでしょうか? 目的は 指定した日付の 出金の合計を取り出したいのです。 . . .
- 締切済み
- オフィス系ソフト
- Access 壁にぶつかってます。助けて
ACCESS VBAの記述でエラーになります。 教えてください。 Private Sub cmd抽出_Click() Dim db As DAO.Database Dim rs As DAO.Recordset Dim mySQL As Long '抽出条件 Set db = CurrentDb() 'レコードセットを作成 mySQL = "SELECT * FROM T_貸付明細 " _ & "WHERE 顧客ID ='" & Me!txtID & "';" Set rs = db.OpenRecordset(mySQL, dbOpenDynaset) 'サブ フォームに表示 Set Me!sub結果.Form.Recordset = rs ' Me!sub結果.Form!日付.ControlSource = "日付" Me!sub結果.Form!貸付.ControlSource = "貸付" Me!sub結果.Form!受領.ControlSource = "受領" Me!sub結果.Form!利息.ControlSource = "利息" Me!sub結果.Form!元金入金.ControlSource = "元金入金" Me!sub結果.Form!貸付残高.ControlSource = "貸付残高" Me!sub結果.Form!次支払日.ControlSource = "次支払日" End Sub 上記の記述で「型が一致しません」とエラーが出ます。 'レコードセットを作成 mySQL = "SELECT * FROM T_貸付明細 " _ & "WHERE 顧客ID ='" & Me!txtID & "';" ここの記述がLongになってない事の間違いだと察するのですが、正しい記述方法を教えていただけませんか。
- ベストアンサー
- オフィス系ソフト
- SELECT出来るのにDELETE出来ないのはなぜ
MySQLで下記SELECTレコードを削除したいと思い、 DELETEへ変えたら文法エラーになります。 SELECT * FROM `piyo` AS a LEFT JOIN `hoge` AS c ON a.`hoge_id` = c.`hoge_id` WHERE c.`x_id` =13 DELETE * FROM `piyo` AS a LEFT JOIN `hoge` AS c ON a.`hoge_id` = c.`hoge_id` WHERE c.`x_id` =13 どう書けば良いでしょうか?
- ベストアンサー
- MySQL
- VBAについての質問です。日付を条件に入れて行削除をしたいのですが、うまくいきません。
VBAの初心者です。よろしくお願いします。日付の条件を入れて行を削除したいと考えていますが、エラーになります。何故でしょうか? コードは以下のようにしています。 よろしくお願いします。 Sub 日付条件で行削除() Dim hiduke As Double Set hiduke = "2009/4/30" For i = 16 To 12 Step -1 If Cells(i, "a") <= hiduke Then Rows(i).Delete End If Next End Sub
- ベストアンサー
- オフィス系ソフト
- VBAで変数に格納する情報を条件分岐したい
VBAで変数に格納する情報を条件分岐したい ACCESS VBAを組んでいるのですが、 フォーム上で4つの条件のうちどれかで絞込みをかけたデータを エクスポートする際、 日付、条件をファイル名につけたいと思っています。 日付はつけられるのですが、 変数に条件を格納するIF分を書いたところ 取得できていないようです。 お知恵を拝借できますでしょうか。 いかがコードになります。 Private Sub cmd04_Click() Dim epData As String Dim epObj As String Dim myFile As String Dim mySQL As String Dim db As DAO.Database Dim myFol As String Dim myKey As String If txtPC番号 = Not Null Then myKey = txtPC番号 ElseIf com所属部所 = Not Null Then myKey = com所属部所 ElseIf txt使用者 = Not Null Then myKey = txt使用者 ElseIf txtPC名 = Not Null Then myKey = txtPC名 End If epData = CurrentProject.Path epObj = "T05_使用者一覧抽出結果" myFile = Screen.ActiveForm.Name Set db = CurrentDb() DoCmd.SetWarnings False DoCmd.OpenQuery "Q10_使用者一覧抽出結果" DoCmd.SetWarnings True mySQL = "INSERT INTO T05_使用者一覧抽出結果 select * FROM Q04_パソコン機器管理台帳 WHERE " & Me.Filter & ";" ' SQLを実行します。 db.Execute mySQL 'CSVファイルをエクスポート DoCmd.TransferText acExportDelim, , epObj, epData & "\" & Format(InDate, "yyyymmdd") & "_" & myKey & "_使用者一覧.csv", True MsgBox "エクスポートが完了しました" 'エクスポートしたフォルダを開く MsgBox "エクスポートが終了したのでフォルダを開きます" myFol = epData Shell "C:\Windows\Explorer.exe " & myFol, vbNormalFocus End Sub
- 締切済み
- Windows XP
- SQLの条件分に ( ) が入っている場合
Access97を使用しています。 SQLの条件で、項目名に '(' が入っている場合 どうすればいいのでしょうか? 例えば 下記の場合 " 式に未定義関数 '出荷日'があります " と出てきます。 Set DB = CurrentDb() strSQL = "SELECT SUM(数量) AS A FROM GAH100 WHERE " strSQL = strSQL + "出荷日(新)='" & Me.日付入力 "';" Set RS = DB.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly) 項目名に() が無いようにするしかないのでしょうか?
- ベストアンサー
- オフィス系ソフト
- SQLで日付を条件に削除したい
SQLで日付を条件に削除したい update の列にdatetime 型で更新日が入っています。 2010年の6月以降を削除したいのですが どうにもうまくいきません。(一応以下のようなことをやってみたりしました) どのように書いたらいいでしょうか?? DELETE FROM SYS WHERE update >#2010/06#
- ベストアンサー
- SQL Server
- delete_all の条件指定
ruby 1.8.7 (2010-08-16 patchlevel 302) mysql2.11.10 を使っています。 delete_allで、条件を指定したいのですがうまくいかずハマっています。 arr_s と丸括弧の間にシングルコーテーションが入ってしまってdeleteできない状態です。 (ハッシュで条件指定したSearchはきちんと削除されています。) 間違いがお分かりになる方、どうか教えてください。。。 ※arr で対象のidを取ってきて、それをすべてカンマ区切りで arr_s に入れて関連テーブルの削除キーとして使っていますが (has_manyを使いたくないので)ほかに素敵な処理の方法があれば参考に知りたいです。。 #search_attr_hash = {:search_data=>"あ", :search_type=>"0"} def clear_db(search_attr_hash) case search_attr_hash[:search_type].to_i when 1..3 logger.info "1...3" s = Data.find :all,:select => ["id"], :conditions=>["from_user = ?",search_attr_hash[:search_word] ] when 0 || 4 logger.info "0 or 4" s = Data.find :all, :select => ["id"], :conditions=>["text like ?", "%"+search_attr_hash[:search_word]+"%" ] end arr = [] s.each{|k| arr.push k["id"] if k != blank? } arr_s = arr.join(",") logger.info arr_s #=>3,4,5,6 DataUrl.delete_all["data_id in (?)", arr_s ] #=>DELETE FROM `data_urls` WHERE (data_id in ('3,4,5,6')) DataTag.delete_all["data_id in (?)", arr_s ] #=>DELETE FROM `data_tags` WHERE (data_id in ('3,4,5,6')) DataRelation.delete_all["data_id in (?)", arr_s ] #=>DELETE FROM `data_relations` WHERE (data_id in ('3,4,5,6')) Search.delete_all["search_type = ? AND search_word = ?",search_attr_hash[:search_type], search_attr_hash[:search_word]] #=>DELETE FROM `searches` WHERE (search_type = '0' AND search_word = 'あ') Data.delete_all["id in (?)", arr_s ] #=>DELETE FROM `twits` WHERE (id in ('3,4,5,6')) return arr.count #=>4 end
- ベストアンサー
- Ruby
- フォーム上のフィルタで抽出されたデータをテーブルに格納したい
フォーム上のフィルタで抽出されたデータをテーブルに格納したい 度々お世話になります。 フォーム上で3つのキーワードを使って抽出したデータを テーブルに格納したいと思っています。 以下のコードを書いたところ、矢印の部分でエラーが起こります。 お知恵を拝借できませんでしょうか? よろしくお願いいたします。 Private Sub cmd04_Click() Dim db As DAO.Database Set db = CurrentDb() Dim mySQL As String mySQL = "INSERT INTO 04_パソコン機器管理台帳 select * FROM T05_使用者一覧抽出結果 WHERE " & Me.Filter & ";" If MsgBox("該当レコードを追加します。", vbYesNo) = vbYes Then ' SQLを実行します。 db.Execute mySQL ←エラーが発生します。 MsgBox "該当レコードを追加しました。" End If End Sub
- ベストアンサー
- その他MS Office製品
お礼
回答ありがとうございました。 無事解決しました。 回答では、「・・・ gatu<##4/15/2011##・・・」となるのでは、と思った のですが、デバッグで確認すると、「・・・ gatu<#4/15/2011# ・・・」と なっており解決しました。