コンボボックスでフィルタリングされたテーブルのレコードでコンボボックスを作成しようとしています。 フィルタリングするテーブルはmuniと呼ばれ、親テーブルはprovと呼ばれます。これらは共通のフィールドで関連付けられています(muniには、各レコードのprov gidを含むgid_provというフィールドがあります)。 最初のコンボボックスはprovのgidを格納し、prov名を表示します。 両方のテーブルは、ODBCを使用してDSNファイルによるアクセスに接続されたpostgresqlのデータベースにあります。 私は多くのオプションを試しましたが、どれも正しいものではありません。 まず、簡単なオプションを試しました。このコードは今役に立たないコンボボックスアクセス2007にvbaを使用してpostgresqlテーブルを作成する
Private Sub PROV_Change()
MUNI.RowSourceType = "Table/Query"
MUNI.RowSource = "select * from memoria.muni where gid_provs =" & PROV
MUNI.Requery
MUNI.SetFocus
MUNI.Text = ""
End Sub
PROVは、provのgidを格納する親コンボボックスの名前です。 MUNIはコンボボックスに入れたいものです。 他のオプション私はSQL文を使ってクエリを作成しようとしましたが、これは今のコードです。私はOpenRecordsetOutputを試しましたが、動作していません。私は、データベースにアクセスし、フィールドを取得し、私はMUNI
Private Sub PROV_Change()
Dim oDb As DAO.Database
Dim oRs As DAO.Recordset
dbconnect = "ODBC;DRIVER=PostgreSQL ANSI;UID=***;PWD=***;PORT=5432;SERVER=127...;DATABASE=memoria_historica;DSN=C:\Users\***"
Set oDb = OpenDatabase("", False, False, dbconnect)
Dim sql As String
sql = "select gid,nombre from memoria.municipios m where m.gid_provs =" & PROV & "order by m.nombre;"
Set oRs = oDb.OpenRecordset(sql, dbOpenSnapshot, dbSQLPassThrough)
Me.muni2.RowSource = ""
If oRs.RecordCount > 0 Then
With oRs
.MoveFirst
.MoveNext
Do While Not .EOF
muni2.AddItem .Fields("nombre").Value
.MoveNext
Loop
End With
End Sub
が@ThaippoのサポートTIHうまく働いたコンボボックスを移入することはできません。ありがとう
質問を編集してコードを現在の内容に更新しないのはなぜですか?私はあなたが上に示しているもののようなものではないと想像します – dbmitch
ありがとう!今それは正常に動作しています。 設定ORS場合は最後に、私はこの –
'もしoRs.recordCount> 0次に Me.txtTextbox =のORSなどの変化に別のクエリを作っid_muniフィールドを埋めるために!エルス Me.txtTextbox = "N/A" 終了gidその= Nothing Set oDb = Nothing End Sub' from @Fiounnala –