Forums Neueste Beiträge
 

listbox in formular - doppelklick - werte aus liste als variablen in anderen makros??? Hilfe ....

22/05/2008 - 20:39 von jensspeedy | Report spam
also - nicht lachen - aber als newbie sucht und bastelt man sich ja
was zusammen ;-)

ich rufe aus einer *dot bei Doppelklick ein formular mit folgendem
code auf

Private Sub Document_New()

Load frmbwsolutions1
frmbwsolutions1.Show



[code]
Option Explicit

Private Sub Listbox1_dblclick(ByVal cancel As MSForms.ReturnBoolean)

Dim Nummer As Integer
Dim Nummer2 As Integer
Nummer = Listbox1.List(Listbox1.ListIndex, 0)
Nummer2 = Listbox1.List(Listbox1.ListIndex, 1)
MsgBox Nummer11 & " " & _
Nummer12



End Sub

Private Sub UserForm_Initialize()

On Error GoTo UserForm_InitializeError
Dim strAccessDir As String
Dim Pfad As String
Pfad = "C:\z_vorlagen\zzz_db\"

strAccessDir = Pfad
Dim appAccess As Access.Application
'Dim AccessDir As String
'AccessDir = "C:\z_vorlage\zzz_db\"
Dim strDBName As String
Dim DAO As Object
Dim wks As DAO.Workspace
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim varProductArray() As Variant
Dim ctl As ListBox
Dim lngProductCount As Long
Dim lngCount As Long

'Pick up path to Access database directory from Access SysCmd
function
Set appAccess = CreateObject("Access.Application")
'strAccessDir = appAccess.SysCmd(9)
strDBName = strAccessDir & "Datenbank1.mdb"
Debug.Print "DBName: " & strDBName
appAccess.Quit

'Set up reference to Access database
Set DAO = CreateObject("DAO.DBEngine.36")
Set wks = DAO.Workspaces(0)
Set dbs = wks.OpenDatabase(strDBName)
Set ctl = Listbox1
ctl.ColumnCount = 4
ctl.ColumnWidths = "50pt; 60pt; 150pt; 170pt"

'Retrieve Category info from table
Set rst = dbs.OpenRecordset("SELECT * FROM z_adressen " & _
"ORDER BY Val(D010Nr), Val(D060Nr)")

rst.MoveLast
lngProductCount = rst.RecordCount - 1
ReDim varProductArray(lngProductCount, 3) As Variant
Debug.Print "Number of items in table: " & lngProductCount
rst.MoveFirst

'Assign Access data to an array of 3 columns
For lngCount = 0 To lngProductCount
varProductArray(lngCount, 0) = rst![D010Nr]
varProductArray(lngCount, 1) = rst![D060Nr]
varProductArray(lngCount, 2) = rst![D070Einheit]
varProductArray(lngCount, 3) = rst![D160Alpha]
rst.MoveNext
Next lngCount
ctl.List() = varProductArray

UserForm_InitializeExit:
Exit Sub

UserForm_InitializeError:
MsgBox "Error No: " & Err.Number & "; error message: " &
Err.Description
Resume UserForm_InitializeExit

End Sub

[/code]

code liegt in einem formular und wird auch aufgerufen beim öffnen des
documents

alles funktioniert soweit ;-) - na sagen wir fast .

wenn ich jetzt in einer zeile der 4-spaltigen liste doppelklicke dann
gibt mir die mesage-box auch die richtigen werte aus für Nummer und
Nummer2 - ABER!!??

wie bekomme ich die werte jetzt als globale variablen gesetzt so dass
ich sie in mehreren anderen makros des dokuments als variablen nehmen
kann?

Me!Listbox1.List(Me!Listbox1.ListIndex, 0) - soll Nummer werden
und
Me!Listbox1.List(Me!Listbox1.ListIndex, 1) - soll Nummer2 werden
zum beispiel

ich habe auch schon versucht die variablen in einem modul als "global"
zu setzen

Public Nummer As Integer
Public Nummer2 As Integer

aber irgendwie schaffe ich es nicht die werte an das startende
dokument zu übergeben bzw. diese Variablen dann dort in einem anderen
Makro zu nutzen..

ist es denn wirklich soooooooo kompliziert, die werte die mir die
messagebox ja nun schon anzeigt als variablen in einem anderen Makro
zu verwenden? wie ruft man die globalen Variablen dann auf - ich habe
jetzt Tage das web durchwühlt aber



das wàre erst mal das wichtigste


wenn einer ne idee wegen der variablenübergabe hàtte wàre das schon
toll

danke schon mal ;-)

wiedermal der jens aus berlin ;-)

das ich nebenbei die liste (etwas mehr als 1000 zeilen auch gerne mit
der maus scrollbar machen würde davon rede ich erst mal nicht - die
dazu gefundenen codes im web sind mir als newbie dann irgendwie doch
zu kompliziert *schnief*
 

Lesen sie die antworten

#1 jensspeedy
22/05/2008 - 23:49 | Warnen spam
ich dussel - ganz oben im ersten text muss es natürlich heißen

Private Sub Listbox1_dblclick(ByVal cancel As MSForms.ReturnBoolean)


Dim Nummer As Integer
Dim Nummer2 As Integer
Nummer = Listbox1.List(Listbox1.ListIndex, 0)
Nummer2 = Listbox1.List(Listbox1.ListIndex, 1)
MsgBox Nummer & " " & _
Nummer2

die beiden richtig angezeigten nummern ( Nummer und Nummer2 ) sollen
als variablen übergeben werden ;-)

sorry

Ähnliche fragen