Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


72 / 500 ページ ←次へ | 前へ→

【11869】Re:データベースまたはオブジェクトは読...
お礼  あつこ  - 10/11/27(土) 19:19 -

引用なし
パスワード
   >そのリンクテーブルを開いてデータを入力することはできますか?

再度、テーブルを確認して、リンクテーブルを作り直したら
入力できました。デザインビューでプライマリーキーの設定も確認できました。

でも、一度プログラムを実行してしまうと、
読み取り専用に変わってしまいます。
Accessを開きなおしても読み取り専用になっています。
プログラムのどこかで読み取り専用にしてしまっているんでしょうね。。

昨日から色々調べておりまして、テーブルにプライマリーキーを設定して、
リンクテーブル更新するよりも
ODBCに接続して、元のテーブルの方を接続する方がいいのかと思い始めまして
そちらで解決を狙っていこうと思います。

なので、この質問は閉じさせていただきます。

よろずやさん、お忙しい中、本当にありがとうございました。
感謝いたします。
・ツリー全体表示

【11868】ODBCDirectのサポート終了に伴うプログラ...
質問  米粉  - 10/11/27(土) 18:16 -

引用なし
パスワード
   こんにちは。

Access98からの2007へのマイグレーション作業を行っていますが
ODBCDirectを使用している為、プログラム変更が必要なようです。

プログラム変更方法について記載のあるページなど
ご存じでしたら、教えていただけませんか。
よろしくお願いいたします。
・ツリー全体表示

【11867】Re:データベースまたはオブジェクトは読...
発言  あつこ  - 10/11/27(土) 0:41 -

引用なし
パスワード
   ずっと悩んでいて、検索方法を変えてみようと思い
「ADO リンクテーブル」で検索したら
例にでてくるコーディングが、わたしのコーディングと違うようです。

"Provider=Microsoft.Jet.OLEDB.4.0;"  とかセットしたり。
でもこれは外部テーブルに直接アクセスする場合でしょうか。

やはり、リンクテーブルはローカルテーブルと同じように扱えるはずと思っているので、ACCESS設定が悪いのでしょうか。

すみません。つぶやきのような投稿になってしまい。。。
引き続き、気づきがありましたら、お願いいたします。
・ツリー全体表示

【11866】Re:データベースまたはオブジェクトは読...
発言  あつこ  - 10/11/26(金) 23:19 -

引用なし
パスワード
   >そのリンクテーブルを開いてデータを入力することはできますか?

ACCESSで、ですよね。
・・・テーブルの中身の表示だけで、入力や更新はできないです。
これが原因ですか。。。

リンクテーブルとはこういうものかと思っていました。。。
お恥ずかしい。
・ツリー全体表示

【11865】Re:データベースまたはオブジェクトは読...
発言  よろずや  - 10/11/26(金) 19:53 -

引用なし
パスワード
   そのリンクテーブルを開いてデータを入力することはできますか?
・ツリー全体表示

【11864】Re:データベースまたはオブジェクトは読...
発言  あつこ  - 10/11/26(金) 10:21 -

引用なし
パスワード
   >dbConn にも dbRecordSet にも 値をセットしてませんが、
>掲示板への記載を省略したのですか?
>省略されると回答できませんょ。


ご指摘ありがとうございます。
うっかり転記漏れをしてしまいました。

以下のSet文2行をコーディングしています。

'ADO カレントデータベース接続
Set dbConn = Application.CurrentProject.Connection
Set dbRecordSet = New ADODB.Recordset


dbRecordSet.Open "テーブル名", dbConn, adOpenKeyset, adLockOptimistic

dbRecordSet.AddNew   <= ここでエラー
  dbRecordSet!コード = Me!コード
  dbRecordSet!名前 = Me!名前
dbRecordSet.update


他にも何か気づきがありましたら、どんな事でも構いませんので
よろしくお願いいたします。
・ツリー全体表示

【11863】Re:データベースまたはオブジェクトは読...
発言  よろずや  - 10/11/25(木) 21:26 -

引用なし
パスワード
   >Global dbConn   As ADODB.Connection
>Global dbRecordSet As ADODB.Recordset
>
>
>dbRecordSet.Open "テーブル名", dbConn, adOpenKeyset, adLockOptimistic

dbConn にも dbRecordSet にも 値をセットしてませんが、
掲示板への記載を省略したのですか?
省略されると回答できませんょ。
・ツリー全体表示

【11862】データベースまたはオブジェクトは読み取...
質問  あつこ  - 10/11/25(木) 12:59 -

引用なし
パスワード
   はじめまして。よろしくお願いします。

WindowsXP
Access2010
ODBC=sybase 5.0

Accessで、sybaseのテーブルをリンクして
更新(NewAdd)しようとした所、題名のエラーがでます。

テーブルに主キーの設定がない事が原因と検索できたので
sybaseのテーブルを変更し、Accessもリンクを貼りなおしたのですが
まだ解決できません。

<ソース>

Global dbConn   As ADODB.Connection
Global dbRecordSet As ADODB.Recordset


dbRecordSet.Open "テーブル名", dbConn, adOpenKeyset, adLockOptimistic

dbRecordSet.AddNew   <= ここでエラー
  dbRecordSet!コード = Me!コード
  dbRecordSet!名前 = Me!名前
dbRecordSet.update
・ツリー全体表示

【11860】ボタンの使用不可について
質問  カズオ  - 10/11/22(月) 22:22 -

引用なし
パスワード
   VBAではなくマクロのことでお聞きしたいのですが。
いま、「フォーム1」というフォーム上に「ボタン1」というボタンをおいております。その他に「テーブル1」というテーブルがあり、その中に「項目A」というフィールドがあります。
フォーム1を開いたとき、
1.「項目A]フィールドに値がない場合は、「ボタン1」を使用不可(Enable=False)
2.「項目A]フィールドに値がある場合は、「ボタン1」を使用可(Enable=True)
にしたいのですが、どうしたらいいでしょうか?
・ツリー全体表示

【11858】Re:プログラムとデータのリンクの貼りな...
回答  よろずや  - 10/11/19(金) 0:10 -

引用なし
パスワード
   >db.Connect = ";DATABASE = D:\21年度会計_be.mdb;"

データベースに対してではなく、
個別のリンクテーブルに対して接続先を変更します。
手動で変更する前後のプロパティを比較すれば、
どのプロパティを変更すればいいのか判りますよ。
・ツリー全体表示

【11857】プログラムとデータのリンクの貼りなおし...
質問  sinnji  - 10/11/18(木) 12:40 -

引用なし
パスワード
   会計というデータベースを作り、プログラムとデータを分割し、PG側(名前:会計_Pg)をドキュメント、データ側(名前:22年度会計_be)をドライブDに置いてリンクし使用しています。
現在この使用で支障はないのですが、たまにドライブDに保存しているデータ(名前:21年度会計_be)にリンクし使用したい場合があります。
この時は、手動でツールからユーティリティ・リンクテーブルマネージャーでリンクの貼り直しをしています。
手動も面倒なので、Pg側のフォームに21年度会計というコマンドボタンを作り、ボタンクリックだけで22年度会計_beから21年度会計_beにリンク仕直しができないかということで21年度会計のコマンドに下記のコードを作ってみました。
結果は上手くいきませんでした。
Private Sub ctl21年度会計_click()
Dim db As DAO.Database
Set db As = Currentdb()
db.Connect = ";DATABASE = D:\21年度会計_be.mdb;"
db.Close : Set db = Nothing
End Sub
どなたか教えて下さい。
・ツリー全体表示

【11856】Re:アクセス台数制限
回答  よろずや  - 10/11/16(火) 23:49 -

引用なし
パスワード
   >気になるのはアクセス台数
>
>何台くらいのクライアントが、マスタ.mdbのテーブルとリンクテーブルすること
>ができるのでしょうか?

5台で何の問題も無かったという人もいれば、
壊れやすいという人もいます。
どっちみち、mdb なんて壊れるときにゃ壊れますから。
本物のデータベースの場合は、
壊れても壊れる直前の状態まで復旧可能ということになっていますが、
mdb ファイルは、バックアップした時点の状態までしか復旧できません。
クライアント用の製品をサーバーに入れてる時点でアウトです。
サーバーにはサーバー用のデータベースを入れましょう。
・ツリー全体表示

【11855】アクセス台数制限
質問  いけも  - 10/11/16(火) 17:13 -

引用なし
パスワード
   Access2007で、データのみのDB(マスタ.mdb)を、
クライアントから、マスタ.mdbをテーブルリンクして
いるシステムを作りました。

気になるのはアクセス台数

何台くらいのクライアントが、マスタ.mdbのテーブルとリンクテーブルすること
ができるのでしょうか?

教えてください。

ちなみに、クラアントは、Access2007 Runtimeです
・ツリー全体表示

【11854】Re:特定の値の個数をカウントするには
質問  にしもり  - 10/11/16(火) 12:17 -

引用なし
パスワード
   自己レスですが、これでできたみたいです。↓

評価満点の個数: Count(IIf([1]>4,1))

IF関数の使い方は合っていますでしょうか。自信がありません。


>こんにちは。
>
>Day 1
>=== ==
>001 
>002 3
>004 4
>005 4
>006 5
>007 3
>008 3
>009 4
>010 4
>011 4
>012 3
>
>という、五段階評価の入ったtableがあります。フィールド[1]の値は評価結果です。なおDay001の評価は、ブランクです。
>
>
>以前、評価が5点(満点)の割合を計算するとき、
>評価満点: -Sum([1]>4)/Sum(1)
>という式をおしえていただき大変助かりました。
>
>ところで、今回、評価満点の個数をだしたく考えてみました。↓
>評価満点の個数: Count([1]>4)
>ところがクエリ実行の結果は、どう見ても間違っています。
>
>どなたか正しい式をご教示いただけませんでしょうか。
・ツリー全体表示

【11853】特定の値の個数をカウントするには
質問  にしもり  - 10/11/16(火) 11:49 -

引用なし
パスワード
   こんにちは。

Day 1
=== ==
001 
002 3
004 4
005 4
006 5
007 3
008 3
009 4
010 4
011 4
012 3

という、五段階評価の入ったtableがあります。フィールド[1]の値は評価結果です。なおDay001の評価は、ブランクです。


以前、評価が5点(満点)の割合を計算するとき、
評価満点: -Sum([1]>4)/Sum(1)
という式をおしえていただき大変助かりました。

ところで、今回、評価満点の個数をだしたく考えてみました。↓
評価満点の個数: Count([1]>4)
ところがクエリ実行の結果は、どう見ても間違っています。

どなたか正しい式をご教示いただけませんでしょうか。
・ツリー全体表示

【11852】Re:文字数で実行するクエリを分けるために
回答    - 10/11/15(月) 12:50 -

引用なし
パスワード
   雅です。

> DoCmd.TransferText acImportDelim, , "テーブル名", "C:\(省略)\テキスト1.txt", False
> 変数1 = Len(テーブル名.フィールド名) <ここで止まる

テーブル名.フィールド名 ってのはどこで定義してますか?
どこかで「テーブル名」というRecordsetオブジェクトを定義していて
どこかでOpenRecordsetしているんだとは思いますが。
・ツリー全体表示

【11851】Re:文字数で実行するクエリを分けるために
質問  初心者A  - 10/11/15(月) 11:25 -

引用なし
パスワード
   >雅さん

省略しすぎとのこと、了解です。
プログラム先頭から、該当する問題発生箇所までを以下に記述してみます。

--------------

Public Sub サブプログラム1()

 Dim 変数1 As Integer

 Application.Echo False  
 DoCmd.SetWarnings False

 DoCmd.TransferText acImportDelim, , "テーブル名", "C:\(省略)\テキスト1.txt", False
 変数1 = Len(テーブル名.フィールド名) <ここで止まる

 If 変数1 > 4 Then
  DoCmd.OpenQuery "更新クエリ1", acViewNormal, acEdit
  DoCmd.TransferText acExportDelim, , "更新クエリ1", "C:\(省略)\テキスト2.txt", True

 Else
  DoCmd.OpenQuery "更新クエリ2", acViewNormal, acEdit
  DoCmd.TransferText acExportDelim, , "更新クエリ2", "C:\(省略)\テキスト2.txt", True

 End If

(省略)

 End Sub

以上です。
このくらいで・・・だいたい、どういう動作をさせようとしているか、伝わりますでしょうか・・・?
・ツリー全体表示

【11850】Re:文字数で実行するクエリを分けるために
発言    - 10/11/15(月) 11:05 -

引用なし
パスワード
   雅です。

私も省略しすぎでしたね。

>「テーブル名.フィールド名」どこでやってんですかね?
「テーブル名.フィールド名」の定義はどこでやってんですかね?
でした。
・ツリー全体表示

【11849】Re:文字数で実行するクエリを分けるために
発言    - 10/11/15(月) 11:03 -

引用なし
パスワード
   雅です。

>Public Sub (省略)
>Dim 変数1 as (省略)(変数の型が違う、などのエラーメッセージは出てきていません)
>
>変数1 = Len(テーブル名.フィールド名) <ここで止まる

省略しすぎでさっぱりわかりません。
「テーブル名.フィールド名」どこでやってんですかね?
・ツリー全体表示

【11848】文字数で実行するクエリを分けるために
質問  初心者A  - 10/11/15(月) 10:49 -

引用なし
パスワード
   Access VBA にて作成したいプログラムがあるのですが、どうしても行き詰ってしまい自力で解決できない部分が出てきてしまっております。

もし問題解決方法がわかる方いらっしゃいましたら、ヒント・助言頂けませんでしょうか。

状態:
Access2000 にて作成。
フィールドに入力されている文字数によって、実行する更新クエリを変える、という動作を入れたい。
が、作成したプログラムを動かそうとすると、「実行時エラー‘424‘ オブジェクトが必要です。」というエラーメッセージが表示されてしまい、動作が止まってしまう。

記述:
Public Sub (省略)
Dim 変数1 as (省略)(変数の型が違う、などのエラーメッセージは出てきていません)

変数1 = Len(テーブル名.フィールド名) <ここで止まる

If 変数1 > 4 Then

(省略)


以上です。よろしくお願い致します。
・ツリー全体表示

72 / 500 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
1078343
(SS)C-BOARD v3.8 is Free