<やりたいこと>
保存されているレコードのフィールド値を修正するために、修正用非連結フォームを開くとき、当該レコードの値を転記したい。

<できないこと>
コンボボックスに値が転記できない。
(テキストボックスには値が転記できる。)

Private Sub Form_Load()

Dim Sql As String
Sql = "SELECT* FROM T_履歴 WHERE NO.=" & Key & ";"

 'KeyはPublic変数、別のフォームモジュール内で値が格納されている。
 'Keyによって、レコードはひとつに絞られている。

Dim DB As ADODB.Connection
Set DB = CurrentProject.Connection

Dim RS As New ADODB.Recordset
RS.Open Sql, DB, adOpenForwardOnly, adLockOptimistic, adCmdText

Me!氏名combo = RS!氏名

↑この式で思うような結果が得られない。
 .Text .Value のプロパティを付加しても結果は同じ。
 ACCESS97ではこのように コンボボックス名="値" で、
 値が代入され、コンボのソースの中からその値が選ばれた状態になったのに…。
 

このQ&Aに関連する最新のQ&A

A 回答 (1件)

どもども田吾作7です。



( ・・)?ン できませんか?
普通ならできますよ。

うーむ・・・
ちょっと気になったのですが、
RS.Open Sql, DB, adOpenForwardOnly, adLockOptimistic, adCmdText
の後に
Debug.Print RS.RecordCount
として、レコード件数が1以上かどうか調べてもらえませんか?

テキストにできて、コンボに出来ないのはおかしい。
もしかして、
RS.Open Sql, DB, adOpenStatic, adLockOptimistic, adCmdText
というようにカーソルタイプを変更したらうまくいくとか・・・

ちょっとレコード件数が気になります。

情報をください。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

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

Qレコード針、カートリッジ、ベルトの交換について質問です。

レコード針、カートリッジ、ベルトの交換について質問です。

最近レコードプレイヤーを購入しました。Pro-ject Debutという機種です。

予備のために交換用のカートリッジや針、ベルトを購入したいと考え、
このモデルに合うものはあるか、購入元のCISCO RECORDSに問合せをしたのですが、
「日本の正規代理店が事業撤退することになり、サポートできない」ということでした。

私はレコードに関してはかなりの初心者なので、色々ウェブ等で調べてみても判然としません。
当初、レコード針のことを「カートリッジ」というのだと思っていましたが、どうも違うみたいですし…。
それくらいの知識しか持ち合わせておりません。

私の知りたいことを以下にまとめました。

Q1、私のプレイヤーはカートリッジ交換(それとも針の交換)が可能なのでしょうか?
Q2、交換可能だとすれば、どのような機種があるでしょうか?日本で扱いがあるものが希望です。
Q3、ベルトは長ささえ合えば付け替え可能なのでしょうか?

●所有プレイヤー 「Pro-ject Debut」
http://www.cisco-records.co.jp/docs/topics/other/projectaudiosystems.php

●プレイヤーについていたカートリッジ 「Ortofon OM 5E」
http://www.ortofon.com/html/profile.asp?body_magnetic_technical_data.asp
※このページのOM 5Eという機種です。


皆様の回答をお待ちしてます。

レコード針、カートリッジ、ベルトの交換について質問です。

最近レコードプレイヤーを購入しました。Pro-ject Debutという機種です。

予備のために交換用のカートリッジや針、ベルトを購入したいと考え、
このモデルに合うものはあるか、購入元のCISCO RECORDSに問合せをしたのですが、
「日本の正規代理店が事業撤退することになり、サポートできない」ということでした。

私はレコードに関してはかなりの初心者なので、色々ウェブ等で調べてみても判然としません。
当初、レコード針のことを「カー...続きを読む

Aベストアンサー

レコードプレーヤーを長年所有している者です
画像から察しますと、高出力のMM型カートリッジと思います
交換は、他のメーカのカートリッジでもOKです。
お持ちのアンプがフォノ対応で、MMやMC選択出来る物でしたら国内で販売している殆どの物は大丈夫です
そうでなければ、高出力のMMカートリッジになります
カートリッジの取り付け用ねじ穴は、統一されていますので、どのメーカーでも合います
カートリッジを交換しましたら、針圧を無負荷の状態でアームが水平になるようにバランスをとり、カートリッジ指定の針圧を架ければOKです
ベルトの方ですが、すぐにへたる物ではないので暫くは大丈夫ですが、
モータの回転を伝える物ですので、同じ長さの物があれば代用出来るかと思います
最悪、丈夫な凧糸を巻きつけてもいけるかなと考えます

QDim x As Integer = 0

いつもお世話になっております。

只今、本に記載してあるソースコードを手入力しています。
標記のように入力したら、『コンパイルエラー 修正候補:ステートメントの最後』というエラーが出ました。

(1)このエラーは無視してもよいのでしょうか?
(2)そもそも、変数の宣言文の後ろに=0をつけている意味がわかりません。当方VB初心者です。

よろしくお願いいたします。

Aベストアンサー

この点は(変数の宣言と初期化は)言語による、と考えるべきです。
この質問は何の質問か。
VB系統らしいことは判るが
VB以外のBASIC
VB6
VBA
VB.NET系統
のどれか質問に書くべき。質問者は経験が無くて、視野がそこまで行かないのかも知れないが。
ーーー
VBAでは(多分VBでも同じ。テスト環境がないので)
Sub test01()
Dim x As Integer
x = 0
MsgBox x
End Sub
はOK
ーー
Sub test01()
Dim x As Integer =0
MsgBox x
はDim x As Integer =0
と入力した段階でエラー。
http://www.bunsugi.ed.jp/vba4graduate/vba_hensuusyokika.htm
ーーー
定数のConstであればこういう書き方はOK
Sub test01()
Const x As Integer = 0
MsgBox x
End Sub
ーーー
VB.NETでは、OK
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim x As Integer = 10
MsgBox(x)
End Sub
ーー
Javaでは可能であるようです
http://msugai.fc2web.com/java/var2.html
ーーーーー
>ろに=0をつけている意味がわかりません
宣言と同時に値を与える=初期化する

この点は(変数の宣言と初期化は)言語による、と考えるべきです。
この質問は何の質問か。
VB系統らしいことは判るが
VB以外のBASIC
VB6
VBA
VB.NET系統
のどれか質問に書くべき。質問者は経験が無くて、視野がそこまで行かないのかも知れないが。
ーーー
VBAでは(多分VBでも同じ。テスト環境がないので)
Sub test01()
Dim x As Integer
x = 0
MsgBox x
End Sub
はOK
ーー
Sub test01()
Dim x As Integer =0
MsgBox x
はDim x As Integer =0
と入力した段階でエラー。
http://www.bunsug...続きを読む

Qレコードカートリッジのダンパーの件

お世話になります。レコードプレーヤーの初心者です。カートリッジのダンパー交換というのを目にしたのですが、ダンパーはカートリッジ本体の中にあるのでしょうか。また、針を新品に交換しても音は改善されないのでしょうか。基本すぎる質問ですいませんが、ご回答お待ちしております。宜しくお願い致します。

Aベストアンサー

カートリッジは、アナログレコードの溝に沿った「レコード針」の動きを、電磁気的に電気信号に変換するものです。レコード針をカートリッジ本体に固定し、かつレコードの溝に沿って自由に動くようにするために、主に「ゴム」などの弾性体でできた「ダンパー」で針を支持します。
 あまり良い図が見当たりませんが、こんなところを参考に。
http://www.phileweb.com/magazine/audio-course/archives/2008/11/20.html
http://www.phileweb.com/magazine/audio-course/uploads/cartrige.jpg

 ダンパーはカートリッジの中の一部品あり、型式によっては(MC型など)針とダンパーが一体で、この場合には針自体をメーカで交換してもらう必要があります。
 なお、「針を交換する」のは、針先(スタイラスチップ、通常はダイヤモンド製)がレコード面をこすって摩耗するからであり、「消耗品の交換」であって音質向上のためではありません。「消耗したら新品に交換しながら使う」というのが通常の使い方であり、「針」は交換できるように設計されています。

 ダンパーは「ゴム」などの弾性体である以上、ある程度経年劣化し、設計上想定した初期特性から変化が起こります。ただし、「針」と違って、「ダンパー」は交換を前提にした設計はされていないのが普通です。
 カートリッジは精密機械であり、ダンパーを「交換する」ことで初期値の特性に戻すというのは、考え方としてはあり得ますが、もともと「カートリッジ」として一体で設計・製作されたものの一部を素人が交換しても、良くなる保証はありません。
 最もよいのは、やはり「ダンパーの劣化したカートリッジ」全体を、「劣化していない、設計当初の特性のダンパーを持ったカートリッジ」に交換することかと思います。(針とダンパーが一体となった機種では、消耗品の針を交換することで、ダンパーも交換されることになります)

 「アナログ」オーディオは、モノを変えれば必ず「音」も変わります。問題は、それが「向上」なのか「低下」なのかということです。自己責任&自己満足でトライするマニアも多いようですが、初心者はやめておいた方がよいと思います。

カートリッジは、アナログレコードの溝に沿った「レコード針」の動きを、電磁気的に電気信号に変換するものです。レコード針をカートリッジ本体に固定し、かつレコードの溝に沿って自由に動くようにするために、主に「ゴム」などの弾性体でできた「ダンパー」で針を支持します。
 あまり良い図が見当たりませんが、こんなところを参考に。
http://www.phileweb.com/magazine/audio-course/archives/2008/11/20.html
http://www.phileweb.com/magazine/audio-course/uploads/cartrige.jpg

 ダンパーはカー...続きを読む

QEXCEL VBA 転記 条件分岐 新規転記 上書転記 プログラム

いつも御世話になっております。
以下のことをしたいのですが、詰まってしまいました。
皆様の力をお借りしたいと思い、書き込ませていただきます。


・ボタン1をクリックすると、base(転記元)のG列に書かれた事項と同一のシート(転記先)へ転記する(各シートA,B,Cへ転記)
・転記先のE列を見て、既存のものであれば、上書きする
・転記先のE列を見て、新規のものであれば、空いている行を探し転記する。

(例)
base(転記元シート)
E1|F1|G1
名前収入シート先
月曜50A
火曜100A
木曜150C
土曜50A
日曜100B
水曜150A
金曜10C


転記実行前
A(転記先シート)
E1|F1|G1
名前収入シート先
月曜A
火曜A
土曜A



転記実行後
A(転記先シート)
E1|F1|G1
名前収入シート先
月曜50A
火曜100A
土曜50A
水曜150A

以下に作成したプログラムを記述します。
が、IF文に関するエラーが生じております。



Sub ボタン1_Click()

Dim dstSheet As Worksheet
Dim srcRow As Long
Dim dstRow As Long
Dim name As Integer
Dim obj As Object
Set srcSheet = Sheets("base")
For srcRow = 2 To srcSheet.Range("G" & Rows.Count).End(xlUp).Row '元シートのデータ範囲で繰り返し(シート先は必須なのでG列でチェック)

If srcSheet.Range("G" & srcRow).Value <> "" Then '(転記先シート名)が空白でない場合に実行(1)


Set dstSheet = Sheets(srcSheet.Range("G" & srcRow).Value) 'シート取得(1)
name = Sheets(srcSheet.Range("E" & srcRow).Value) '名前を取得(1)

Set obj = Worksheets(dstSheet).Cells.Find(name) '名前を転記先の中で検索(1)

End If '(1)の終了

If obj Is Nothing Then '検索でかからなかったら、新たに空白の行を見つけて転記元から転記先へ転記する(3)

'以下3行問題点????

dstRow = dstSheet.Range("G" & Rows.Count).End(xlUp).Row + 1 '転記先行取得
If dstSheet.Range("E2") = "" Then dstRow = 1 '質問で転記先には1行目からなので、それに対応
dstSheet.Range("E" & dstRow).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記

End If

Else '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4)


lngYLine = obj.Row
intXLine = obj.Column

With Sheets(dstSheet) '検索でかかったら、該当の行のアドレスを割り出し、特定の範囲を上書きする。(4)


dstSheet.Range("E" & lngYLine).Resize(1, 3).Value = srcSheet.Range("E" & srcRow).Resize(1, 3).Value 'データ転記(4)

End If '(3),(4)の終了


Set obj = Nothing 'Objの初期化

Next

End Sub

いつも御世話になっております。
以下のことをしたいのですが、詰まってしまいました。
皆様の力をお借りしたいと思い、書き込ませていただきます。


・ボタン1をクリックすると、base(転記元)のG列に書かれた事項と同一のシート(転記先)へ転記する(各シートA,B,Cへ転記)
・転記先のE列を見て、既存のものであれば、上書きする
・転記先のE列を見て、新規のものであれば、空いている行を探し転記する。

(例)
base(転記元シート)
E1|F1|G1
名前収入シート先
月曜50A
火曜100A
木曜150C
...続きを読む

Aベストアンサー

前回の続きみたいですね。

提示のコードはあちこちミスがあり(^^;;;
それらをいちいち文言で指摘するのがちょと面倒なので
訂正加筆したコードをアップします。
以下をコピペして実行してみてください。

'-----------------------------------------
Sub ボタン1_Click()

Dim srcSheet As Worksheet
Dim dstSheet As Worksheet
Dim srcRow As Long
Dim dstRow As Long

Dim name As String
Dim obj As Range

Set srcSheet = Sheets("Base")

For srcRow = 2 To srcSheet.Range("G" & Rows.Count).End(xlUp).Row
 If srcSheet.Range("G" & srcRow).Value <> "" Then
   Set dstSheet = Sheets(srcSheet.Range("G" & srcRow).Value)
   name = srcSheet.Range("E" & srcRow).Value
   Set obj = dstSheet.Range("E:E").Find(name, , xlValues, xlWhole)
     If obj Is Nothing Then
       dstRow = dstSheet.Range("G" & Rows.Count).End(xlUp).Row + 1
       If dstSheet.Range("E1") = "" Then
         dstRow = 1
       End If
       dstSheet.Range("E" & dstRow).Resize(1, 3).Value = _
          srcSheet.Range("E" & srcRow).Resize(1, 3).Value
     Else
       dstSheet.Range("E" & obj.Row).Resize(1, 3).Value = _
          srcSheet.Range("E" & srcRow).Resize(1, 3).Value
     End If
 End If
Next

End Sub
'---------------------------------------

変数の型はObjectではなく明示した方がベターです。
また、ちゃんと目的に合った型を宣言すること。
それから、nameという変数はあまり感心しません。
以上。

 

前回の続きみたいですね。

提示のコードはあちこちミスがあり(^^;;;
それらをいちいち文言で指摘するのがちょと面倒なので
訂正加筆したコードをアップします。
以下をコピペして実行してみてください。

'-----------------------------------------
Sub ボタン1_Click()

Dim srcSheet As Worksheet
Dim dstSheet As Worksheet
Dim srcRow As Long
Dim dstRow As Long

Dim name As String
Dim obj As Range

Set srcSheet = Sheets("Base")

For srcRow = 2 To srcSheet.Range("G" & Rows...続きを読む

Qレコードカートリッジの寿命?

ガラクタ整理していましたらカートリッジキーパー、レコードカートリッジを数個収納できるケースが出てきました。たぶん20年から25年前のものですが使って大丈夫なのでしょうか?確か振動系にゴム系の部品を使っていたような気がします。いくら暗所でもきついでしょうか?デンオン103とかエンパイヤとかあります。

Aベストアンサー

オルトフォンMC20とエラックSTS455というカートリッジを所有しています。ともにCD時代になってから、20年以上も使わずに放置していました。ゴムダンパーが硬化して、もはや使い物にならないだろうと考えていました。

ところが、LPを再生する必要が生じて試しに物置から引っ張り出してみたところ、立派に役に立ったどころか、CDを上回る豊麗な音質にびっくり。とりわけエラックで聴く日本プレスLPの、潤いに富んだ情報量の極めて多い音質は感涙ものでした。CD前夜の70年代末~80年代初めに製造された日本盤LPの技術水準の高さは、CDが逆立ちしてもかないません。

CDも最新録音のものは優れた音質ですが、LP時代の音源をCD化したものは音質がLPに比べて明らかに落ちます。情報量が半分ぐらいに減っている感じ。アナログ録音特有のテープノイズを除去する処理が音質を劣化させているようです。

デンオンDL103は、NHKの放送業務用に開発されたもので、カートリッジの原器とも言うべき名機です。大切になさってください。そしてアナログ・オーディオの豊潤な音質を存分に楽しんでください。

オルトフォンMC20とエラックSTS455というカートリッジを所有しています。ともにCD時代になってから、20年以上も使わずに放置していました。ゴムダンパーが硬化して、もはや使い物にならないだろうと考えていました。

ところが、LPを再生する必要が生じて試しに物置から引っ張り出してみたところ、立派に役に立ったどころか、CDを上回る豊麗な音質にびっくり。とりわけエラックで聴く日本プレスLPの、潤いに富んだ情報量の極めて多い音質は感涙ものでした。CD前夜の70年代末~80年代初めに製造された日本盤LPの...続きを読む

QMicroSoft BasicのDim文とVisualBasicのDim文の違い

私が20年前にMicroSoft Basicを使っていたときは、DIM文はDIMENSIONの略で配列型変数の宣言に使っていました。

最近VisualBasicの勉強を始めたのですが、変数の宣言はすべてDim文になっており、昔のMS BasicのDim文と意味合いが変わっているのに驚いています。

ここで質問させてください。
・なぜ配列を意味するDimension文が変数の宣言なのか?
・どのバージョンのBasicからDim文の意味が変わったのか?

私が使用していたのはNEC N-Basic,N-88Basic,N-98Basicです。

Aベストアンサー

VISUAL BASIC のDimは ディメンジョンの略です。
私の経験ではVB2.0時代からありました。

配列0を考えた場合変数とおなじであるからだとおもいます

Qレコードプレイヤのカートリッジについて

レコードプレイヤをオークションで買おうと思うのですが、カートリッジがついてないようです(アームから先がない)
そこで中古のカートリッジも一緒に買おうと思うのですが、適当に買って大丈夫でしょうか?
MM方式やらMC方式などがあると聞くのですが違いがわかりません。購入時の注意点などお教えください。
よろしくお願いします。

Aベストアンサー

まず、お持ちのアンプにPHONO入力端子がありますか?
また、PHONO入力端子について、MC/MMの切り替えスイッチがありますか?
PHONO入力端子があれば、アナログプレーヤーを接続できますが、なければ、PHONOアンプが別途必要です。
PHONO端子があり、MC/MMの切り替えスイッチがあれば、カートリッジに応じてスイッチを切り替えれば、問題なく再生できます。
PHONO端子があり、MC/MMの切り替えスイッチがない場合、MC型のカートリッジを繋ぐには、出力電圧が小さいため、PHONO端子とカートリッジの間に、MCヘッドアンプまたはMCトランスが必要です。

また、トーンアームの先にあるコネクタあらカートリッジ側がないのですよね。
そうだとすると、カートリッジと合わせて、カートリッジを取り付けるヘッドシェルというものを買う必要があります(一体になったカートリッジもある)。

Qマクロで100マス計算! Dim i,j As Integer For i = 2 ToRang

マクロで100マス計算!

Dim i,j As Integer

For i = 2 ToRange(”A1”).End(xlDown).Row
For j=2 To Range(”B1”).End(xlToRight).Column

Cells(i,j).Value = Cells(i,1).Value * Cells(1,j).Value
Next j
Next i
Endsub

上記のように記述しましたが、
iの最終行が2となってしまっていますがなぜこのコードが間違っているのか分からないです。。どなたか教えていただけたら嬉しいです!

Aベストアンサー

確認してはいませんが…


>改行、スペースは実際にはきちんととっていますので気にしないでください
とのことなので、違っているのかもしれませんが、

>For i = 2 ToRange(”A1”).End(xlDown).Row
         ↓
 For i = 2 To Range(”A1”).End(xlDown).Row
で、うまくいきませんか?
100マス(10×10)と最初から決まっているので、範囲は 2 To 11 でも良いように思いますが…

改行、スペースなどが正しくなっているなら、Range(”A1”).End(xlDown).Rowの値が2以下になっている可能性が考えられます。(ということは、A1が空白セル、または、A3が空白セルなどなど・・)
A1が空白セルの場合は、
 For i = 2 To Range(”A2”).End(xlDown).Row
とするか、
 For i = 2 To 11
などとすることで、動作するのではないかと推測します。

Qカートリッジのボディがレコード盤に当たる

 この間新しいカートリッジに取り替えたら適性針圧にも関わらず、カートリッジのボディの出っ張りがレコード盤に当たります。少し針圧を軽くしても同じでした。どうしたらよいのでしょうか?

Aベストアンサー

トーンアームの高さを調整する事。

QVB6変数の宣言dim j,k,p,m,n as Integerは良くない?

お世話になります。

VB暦1年です。

汎用の変数宣言でタイトルのように
dim j,k,p,m,n as Integer
dim ssa,ssb as String

など、カンマ区切りで変数宣言を使っていたのですが
最近、知人にasの手前の変数は型どおり宣言されるが
その手前の変数はVariant型で宣言されてしまうと指摘されました。

指摘されるまで気にはしていませんでしたが
ウォッチで確認すると変数に代入されるまでは
型がVariant/Emptyとなってます。

以後、気をつければいいのですが
過去にコーディングしたプログラムにも多少、使用していて客先に納品してしまっているものもあります。
後々、問題になるのかな?

Aベストアンサー

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというようなバグの原因になりやすいので、型を明示できるような状況で敢えてVariant型を使うべきではないです。

しかし、すでに納品してしまったコードについては、問題はメモリを余計に使ってしまうことくらいではないでしょうか?
他の人が気づかなかったことから考えるに、多分狭いスコープで使っていますよね? 比較対象や代入するべき型を誤るというようなロジックの誤りがない限り、少なくとも動作上の問題は発生しないと思います。ただ、直せる機会があるのであれば、直した方がいいとは思いますが。

おっしゃる通り、カンマで区切る場合は、
Dim j As Integer, k As Integer, p As Integer
という風にすべてAsで型を明示しないと、
Variant型になってしまいます。
つまり、
Dim j
Dim k
Dim p As Integer
とわけて書いた場合と同じです。
(VB.NETは、
Dim j, k, p As Integer
で全部Integerになるようなので、ややこしいですね)

すでにご存知とも思いますが、一般的にVariant型を多用しているコードは、宣言を見ても、どういう種類の値を使うかわかりづらいですし、比較対象の型を誤るというよう...続きを読む


人気Q&Aランキング

おすすめ情報