その他(データベース)

全9223件中161~180件表示
  • アクセス 主キー・INDEX無フォーム背景色

    Access2010でフォームに入力する際に、レコード数と確認項目も多いため、入力時に 該当行が一目でわかるようにしたいのですが、主キーもINDEXも無いフォームの背景色を 以下のように変更する方法がわかりませんので、お教え願います。 データは、日々増減します。 ((1)ができればベストですが、無理なら(2)でも構いません) (1) カレント行の背景色の変更および文字拡大 (2) 1行毎に行の色をつける

  • VBA null判定

    Accessでテキストボックスの値をテーブルへ書き込むVBAを作成しているのですが、Null判定がうまくいきません。 ◎環境 OS:Windows7Pro Var:Access2010 DB:MySQL5.6 Private Sub cmdSubmit_Click() Dim Rst As DAO.Recordset Dim ErrT As String Set Rst = CurrentDb.OpenRecordset("m_plan", dbOpenDynaset) '各テキストボックス、Null判定 If IsNull(txtPid) Then MsgBox "プランID[" & txtPid & "]が未入力です" Call txtCrer Exit Sub End If If IsNull(txtPName) Then MsgBox "プラン名が未入力です" Call txtCrer Exit Sub End If If IsNull(txtPsdate) Then Me!txtPsdate = #01/01/2010# End If If IsNull(Me!txtPedate) Then Me!txtPedate = #01/01/2010# End If Debug.Print "プランID["; Me.txtPid & "]" Debug.Print "プラン名[" & Me!txtPName & "]" Debug.Print "開始日[" & Me!txtPsdate & "]" Debug.Print "終了日[" & Me!txtPedate & "]" ↑↑↑↑↑↑↑↑↑ ここで、Null判定を行ってますが、データがあるにも関わらず、処理が続行されたり、Null判定結果が起動するたびに変わります。 On Error GoTo err With Rst .MoveLast .AddNew .Fields("PlanID") = Me!txtPid .Fields("PlanName") = Me!txtPName .Fields("PlanSt") = CDate(Me!txtPsdate) .Fields("PlanEn") = CDate(Me!txtPedate) .Fields("P_Remaks") = Me!txtPbikou .Update End With Rst.Close Set Rst = Nothing err: MsgBox "DBエラー" Debug.Print Rst.Type Debug.Print err.Description Call txtCrer End Sub ただし、下記判定だけのボタンとプロシージャーでは、正常に判定されます。 判定だけの、プロシージャー 'Null判定テスト Private Sub cmdtest_Click() If IsNull(txtPid) Then Debug.Print "[" & txtPid & "]" & "Nullです。" Else Debug.Print "[" & txtPid & "]" & "Not Nullです。" End If If IsNull(txtPName) Then Debug.Print "[" & txtPName & "]" & "Nullです。" Else Debug.Print "[" & txtPName & "]" & "Not Nullです。" End If If IsNull(txtPsdate) Then Debug.Print "[" & txtPsdate & "]" & "Nullです。" Else Debug.Print "[" & txtPsdate & "]" & "Not Nullです。" End If Debug.Print "===============================" End Sub どこが間違っているかまったくわかりません、アドバイスを頂けましたら幸いです。

  • UNIONとUNION ALLの違いについて

    お世話になります。 一応違いについては把握しておりますが、念のため 確認させて下さい。 以下のクエリがあります。 クエリA  受注日   型番  数量の合計  2015/01/01 AAA   10  2015/01/01 BBB   5 クエリB  受注日   型番  数量の合計  2015/01/01 BBB   5  2015/01/01 CCC   10  2015/01/02 CCC   5 クエリA UNION クエリB の場合は、  受注日   型番  数量の合計  2015/01/01 AAA   10  2015/01/01 BBB   5  2015/01/01 CCC   10  2015/01/02 CCC   5 となると思ってます。 ※型番Bの重複がマージされる クエリA UNION ALL クエリB の場合は、  受注日   型番  数量の合計  2015/01/01 AAA   10  2015/01/01 BBB   5  2015/01/01 BBB   3  2015/01/01 CCC   10  2015/01/02 CCC   5 となると思ってます。  ※重複があっても単純にくっつける。 あってますでしょうか? で、例えば、テーブルA及びBにそれぞれ「ライン」という項目があり、 テーブルAの方は、L01、L02となっており、テーブルBの方は LL01、LL02となっていたとしたら(要するにテーブルAのラインと テーブルBのラインが重複することが無い)、UNIONでも UNION ALLでも、どちらでも結果が同じになる・・・という ことであってますでしょうか? ご教示の程、宜しくお願い致します。

  • 半角の"/"や"*"でプログラムを止めたいです。

    Access2013です。 テキストボックスに入力された値を元に、APIを使ってフォルダを生成する プログラムを作成しています。 しかし、生成したい値の中に、フォルダに指定できない文字”/ : * ? " <> |”が あることが分かりました。 中には、スラッシュが半角、全角混ざっているものも有ります。 試験的に、LIKE関数で ”/”が含まれていたら止まるようにしてみたのですが Me.strFullPath Like "*/*" としたところ、半角、全角問わず、スラッシュと 認識してしまうことが分かりました。 作ってみたプログラムは以下の通りです。 If Me.strFullPath Like "*/*" Then MsgBox "パスに'/'が含まれている為、フォルダを作成できません。" Else Dim Ret As Long Ret = SHCreateDirectoryEx(0&, Me.strFullPath, 0&) If Ret = 0 Then MsgBox "フォルダを作成しました。" ElseIf Ret = 80 Or Ret = 183 Then MsgBox "既にフォルダがあります。" Else MsgBox "フォルダを作成できませんでした。" End If  End If このままだと、スラッシュが入っている場合。全角・半角問わず プログラムが止まりました。 LIKE関数にはこだわりませんが、スラッシュやアスタリスクなどを、半角だけ 認識させるには、どのようにしたら良いでしょうか。 出来ましたら、具体例をご教授願います。

  • ACCESS2013 コンボボックスの警告について

    (1)コンボボックスに一度値を入力及び選択をして確定する。 (2)再度(1)のコンボボックスの内容を削除して空欄の状態に戻す。 (3)他のフィールド等にカーソル等を移すと、(2)のコンボボックスに対して警告メッセージが出でしまう。 'xxxxトランザクション.xxxxカラム'フィールドに値を入力してください。 上記(3)の警告メッセージが出ないようにしたいのですが どのように対応すればよろしいでしょうか? ※フォームはxxxxトランザクションがデータソース(ダイナセット)になっています。 ※コンボボックスはxxxxマスタテーブルが値集合(テーブル/クエリ)となっています。

  • 更新の許可(AllowEdits)について

    Access2013を使用しています。 フォームのプロパティ →更新の許可 いいえ VBAに以下のコードを記述しました。 Private Sub 更新許可_Click() Me.AllowEdits = True End Sub Private Sub 更新不可_Click() Me.AllowEdits = False End Sub 更新許可ボタンをクリックしたとき、問題なく更新出来るようになるのですが 更新不可ボタンをクリックしても、更新出来てしまいます。 何処に原因があるのでしょうか。 なお、True→ -1 、False→0に書き換えてみましたが変化が有りませんでした。 出来ましたら、具体策をお願い致します。

  • Accessフィールド名で別テーブルの検索

    テーブル1のフィールド名に、 AAAがあり、 テーブル2のデータに AAAがある場合、 どの様な SQLを記述して、検索したらよいのか、 わかりません。

  • SELECT文の二段重ね

    次のSQL文を実行します。 create table1 (id, english) insert table1 (1,"foo") insert table1 (2,"bar") create table2 (id, japanese) insert table2 (1, "ふー") insert table2 (2, "ばー") SQL文法としては誤ってますが、成功したとします。 いま、select id from table1 where english = 'foo'; で1が得られます。 いま、select japanese from table2 where id = 1; で"ふー"が得られます。 これを一つのSQLite3のselect文で実現できないでしょうか。 select japanese from table2 where id = (select id from table1 where english = 'foo'); で良いですか? カテゴリ選択にSQLiteが無いのは、人気が無いからですかね。

  • Functionの使い方が分かりません。

    ACCESS 2013環境でVBAを使用しています。 プログラムが長い上、使用する箇所が多くて困っています。 Functionで、使いたい時だけ呼び出したいのですが うまく行きません。 二つのテキストボックスに入力された、文字を組み合わせて 文字列を生成するプロシージャを作成しています。  txt1の値が、岡山  txt2の値が、オカヤマ の時 先頭の文字列が ア行、続きは _岡山 となるよう AscW関数で文字コードで一度抽出し, select文で判別しています。 コードは --------------------------------------------- Private Sub コマンド1_Click() Dim kanji As String Dim katakana As Integer Dim sento As String Dim hensuu As String kanji = Me.txt1 katakana = AscW(Left(Me.txt2,1)) Select Case katakana Case 12450 To 12458 sento = "ア行" Case 12459 To 12468 sento = "カ行" ~(中略)~    Case Else End Select hensuu = sento & "_" & kanji MsgBox hensuu End Sub --------------------------------------------- となっています。 Select Case文が長いのと、複数のフォーム上で実行させるボタンごとに 同じコードを記述していて、最近Accessの起動が遅くなってきました。 Select文をFunctionから呼び出し、最終的にはモジュールから呼び出しに 書き換えたいのですが、書き方が良く分かりません。 試したコード --------------------------------------------- Function moji(ByRef katakana As Integer,sento As String) Select Case katakana Case 12450 To 12458 sento = "ア行" Case 12459 To 12468 sento = "カ行" ~(中略)~    Case Else End Select End Function Private Sub コマンド1_Click() Dim kanji As String Dim katakana As Integer Dim sento As String Dim hensuu As String kanji = Me.txt1 katakana = AscW(Left(Me.txt2,1)) sento = moji(katakana) hensuu = sento & "_" & kanji MsgBox hensuu End Sub --------------------------------------------- 多分、大きく間違っているのではないかと思うのですが どのように修正したらよいでしょうか

  • ExcelからAccess2013DBを更新する時

    Excel2013 vba-> Access2013 mdbファイル 問題点:以下のソースを実行すると、エラーが発生します。このエラーをなくしてアクセスデータベースのテーブルの情報の更新、新規追加、削除を行いたいです。 エラー内容:実行時エラー'3251' 現在のRecordsetは更新をサポートしていません。プロバイダーか、選択されたロックタイプの限界の可能性があります。 ソース: Sub 登録処理()   Dim Rst As adodb.Recordset   Dim SQL As String   Dim Rg As Range   Dim RgData As Range   Dim lngLastRow As Long   Dim RgDel As Range      On Error GoTo errH      Set RgData = mySh.Range("B2")   lngLastRow = RgData.End(xlDown).Row   Set RgData = mySh.Range(RgData, mySh.Range("AB" & lngLastRow))      SQL = "Select * from [会社管理テーブル]"   Call DBconection2   Set Rst = New adodb.Recordset   With Rst     .ActiveConnection = Cn     'SQL文でテーブル名と抽出条件を指定する     .Source = SQL     .CursorLocation = 3 ' クライアントサイドカーソルに変更     .Open        End With      Dim y As Long      Sheets("会社管理").Select      If Rst.EOF = False And Rst.BOF = False Then          For i = 1 To RgData.Rows.Count              If Cells(i + 1, 1).Value = "変更" Then         Rst.MoveFirst         Rst.Find "[施工会社ID]=" & RgData(i, 1).Value         If Rst.EOF Then                    Else           Rst.Fields("会社ID").Value = RgData(i, 2).Value           Rst.Fields("会社名").Value = RgData(i, 3).Value           Rst.Fields("フリガナ").Value = RgData(i, 4).Value              Rst.Update         End If         Cells(i + 1, 1).Value = ""       ElseIf Range(i, 1).Value = "削除" Then         Rst.MoveFirst                  Rst.Find "[会社ID]=" & RgData.Cells(i, 1).Value         If Rst.EOF Then                    Else           Rst.Delete         End If         Set RgDel = Rows(i + 1 & ":" & i + 1)         RgDel.Select         RgDel.Delete                ElseIf Range(i, 1).Value = "新規" Then         Rst.AddNew         Rst.Fields("会社ID").Value = RgData(i, 2).Value         Rst.Fields("会社名").Value = RgData(i, 3).Value         Rst.Fields("フリガナ").Value = RgData(i, 4).Value         Rst.Update         Cells(i + 1, 1).Value = ""       End If            Next i        End If exitH:      Rst.Close: Set Rst = Nothing   Call DBclose2   Exit Sub         errH:   MsgBox Err.Number & "(" & Err.Description & ")"   GoTo exitH    End Sub Sub DBconection2()   Set Cn = New adodb.Connection   Cn.Provider = "Microsoft.Jet.OLEDB.4.0"   Cn.Open modPublic.DBPATH    End Sub Function MakeDBconection() As adodb.Connection   Set Cn = New adodb.Connection   Cn.Provider = "Microsoft.Jet.OLEDB.4.0"   Cn.Open modPublic.DBPATH      Set MakeDBconection = Cn    End Function Sub DBclose2()   Cn.Close   Set Cn = Nothing End Sub Sub EraseContents(s_Rg As Range)   s_Rg.ClearContents    End Sub 誰か、解決方法がおわかりの方がいましたら、アドバイスをよろしくお願いします。

  • Access レポートの改ページについて

    お世話になります。 以下のテーブルがあります。  受注日     型番    納期  2015/01/01 AAA   2015/01/05  2015/01/01 BBB   2015/01/05  2015/01/01 CCC   2015/01/06  2015/01/01 DDD   2015/01/06 で、このテーブルをソースとしてレポートを作成したいのですが、 「納期」で改ページさせたいところです。 なので、このテーブルをレポートで開くと、  納期:2015/01/05 ← ヘッダー  受注日     型番  2015/01/01 AAA  2015/01/01 BBB  納期:2015/01/06 ← ヘッダー  受注日     型番  2015/01/01 CCC  2015/01/01 DDD と、2ページになって欲しいのですが。。 どのようにすれば、このように改ページできるように なりますでしょうか。 ご教示の程、宜しくお願い致します。

  • 【access2010】こんなことってあるの???

    access2010ですが、ナビゲーションウインドを左側に寄せて最少幅にしたところ、元に戻そうとしても、⇔マークが出なくなり困ってます。 データベースの最適化をしてもうまくいかず、ネットで類似のトラブル対策でF11キーを押す方法も全く効果ありません。再起動しても、幅の狭いままで、これではオブジェクトが見えず、使えません。 やむなく、2003で読み、ここの幅を広げて保管して、2010で再度読んでも同じ状態です。 これは、2010の欠陥でしょうか? どなたか、解決策のわかる方、大至急ご教授下さい。

  • エクセル2007をエクセル2013で閲覧する術

    お忙しい中、閲覧頂き、感謝いたします、私は現在ウインドウズ7にて、エクセル2007を使用してあらゆる表計算書並びに、書類を作成致して居りますが、先日ある知り合いのお宅にお伺いいたした折に、外付けUSBにエクセル2007で作成した書類を先方のパソコンで閲覧しようと思い先方のエクセル2013を使用して、こちらから持参した外付けUSB(エクセル2007で作成した表計算及び書類等)の内容が閲覧できない状態でした、既に、エクセル2007を使用して約7年ほどが経過しており、また、外付けHDD等にも保存しており、かなりの量になっております、質問ですが、私のエクセル2007が古くて対応しないのか?若しくは操作ミスなのか?これらの書類をエクセル2013でも閲覧できる方法が在ればご指導のほど、よろしくお願い申し上げます。

  • excelデータから店別のデータを作成する

    excel2007データに全店のデータがあります。 この全店データから店別にexcelデータファイルとして作成したいのですがその方法がわからなく困っています。どなたかご教授をお願いいたします。 サンプル(全店.xlsx) 支店名 氏名  役職 年齢  青森  あさん 係長 40歳 青森  いさん 課長 42歳 青森  うさん 担当 26歳 岩手  えさん 係長 38歳 宮城  かさん 部長 55歳 宮城  きさん 課長 41歳 宮城  くさん 主任 29歳 宮城  けさん 主任 30歳 このような全店データから サンプル(青森支店.xlsx) 青森支店 氏名 あさん いさん うさん  役職 係長  課長  担当 年齢 40歳 42歳  26歳 という店別データファイルを作成したいのです。

  • Sum関数の使い方

    Access2013 vba メインフォームのサブフォームコントロールの中にあるサブフォームA(帳票)のフィールド「金額」の合計値をメインフォームで表示したいのですが、その関数の式を以下のようにして入れましたが、何も表示されません。 「=Sum(Nz([SubForm01].[Form]![発注合計金額],0))」 どこが間違っているか教えて頂けないでしょうか・・・ よろしくお願いします。

  • 受注明細テーブルについて

    Access2013 vba 今工事関係のシステムを作っています。 ・工事受注の情報を入力する画面A ・工事部材の注文明細を入力する画面B(帳票・サブフォーム) ・工事の管理情報を入力する画面C(単票・メインフォーム) ・工事の発注明細を入力する画面C2(帳票・サブフォーム) ・受注明細画面D(帳票フォーム) とあるとして 【A】受注情報管理 ・受注ID(main key) ・受注日 ・依頼内容 ・部材注文合計金額 ・発注合計金額 【B】部材注文明細 ・部材明細ID2 (main key) ・受注ID(foreign key) ・品番 ・商品名 ・単価 ・数 ・摘要 【C】工事管理情報→依頼先会社毎に、受注IDに紐づく ・工事管理ID (main key) ・受注ID (foreign key) ・依頼先会社ID(foreign key) ・工事開始日 ・工事終了日 【C2】工事管理─仮発注明細 ・明細ID4(main) ・工事管理ID ・項目名 ・単価 ・数量 ・摘要 受注明細を、部材注文明細と仮発注明細から作成するやり方を考えました。 BとC2のレコードから、受注IDをキーにして、全てのレコードを以下のDの受注明細テーブルに格納する・・・。この時、B, C2と、Dは非同期→すると、もし、部材明細や仮発注明細が変更されると、Dが連動してその変更内容が反映出来ません。このやり方が良いのかとうか、いまいちわかりません。ご助言をお願いします・・・。 【D】受注明細 ・受注明細ID5(main) ・受注ID ・項目名 ・単価 ・数量 ・摘要 ・請求ID

  • 数値を指定した文字に簡単に変換する方法?

    エクセルの表にて 商品のコード番号のみが入力されています。 そのコード番号の隣の列に商品名を表示したいのですが どうすればいいでしょうか? ランダムに沢山あります。 どうすればいいでしょうか? 例) コード番号  商品  1     みかん  2     バナナ  3     りんご  1     みかん  3     りんご  ・      ・  ・      ・  ・      ・  ・      ・  よろしくお願いします。

  • 帳票フォームの行の順番を簡単に変えたい

    Access 2013 VBA 帳票フォームの行の順番を簡単に変えたいのですが、何か方法はありますでしょうか。 よろしくお願いします。

  • Accessのファイルサイズ縮小について

    Access 2000で作成したmdbファイルを Access 2013環境で使用しています。 ・テーブルのみのmdbファイル(1)があります。  mdbファイル(1)の中には、テーブルオブジェクトが1つあり、フィールドが1つ、  フィールドサイズは255です。レコード件数は、36万5000件程度あります。 ・フォームやクエリ、マクロ、mdbファイル(1)と  リンクテーブルでつないでいるmdbファイル(2)があります。 mdbファイル(1)のファイルサイズが、90MBに達しており mdbファイル(2)を開いたり、何か処理させるのを遅くしているのではないか と思っています。 他の方の質問をチェックしましたが、結果は 最適化について  オプション→現在のデータベース→閉じるときに最適化する→チェックON済み  手動で最適化する→変化なし。 MDBをMDEに変換する  Access 2013では、バージョンが違うので変換できないようです。  accdb形式に変換→accde形式に変換しましたが、変化なし  (そもそも、ファイル(1)はテーブルのみで、マクロやプロシージャは無いので、  意味が無かったかも) となっており、対処法が見つからなくて困っています。 何か良い案はないでしょうか。

  • access入所退所日のデータから日数分データ追加

    access初心者です。現在以下のようなテーブルがあります。           入所日   退所日 宿泊者ID(A1) 2015/01/01 2015/01/10  この場合新規テーブルに           滞在期間 宿泊者ID(A1) 2015/01/01 宿泊者ID(A1) 2015/01/02 宿泊者ID(A1) 2015/01/03         : 宿泊者ID(A1) 2015/01/10 という具合に新規追加するには、どのような手法が考えられますでしょうか? 提示情報が足りないと思うのですが、その点のご教授もお願い申し上げま。