login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Variabele vernieuwen

Offline pororoca - 24/02/2009 09:10 (laatste wijziging 24/02/2009 09:40)
Avatar van pororocaLid Dag mensen,

Ik heb het volgende:

Een class
In deze class staat een variabele: strVar. Deze class doet verschillende acties met queries e.d. Het genereerd een lijst, als je een item in de lijst aanklikt wordt de ID geplaatst in strVar.

Deze class staat twee keer aangeroepen in het form met "new class":
1 = objClass1
2 = objClass2

Tot nu toe werkt alles.

De tweede gedefinieerde class moet de waarde van strVar van de eerste krijgen. Dit kan ik doen door objClass1 en in de class zelf er "strVar" achter plakken, maar dat wil ik niet.
Ik wil dat ik dit ongeveer wil doen:

  1. Dim objClass1 As New Class
  2. With objClass1
  3. .query = "SELECT * FROM table"
  4. .generatelist()
  5. End With
  6.  
  7. Dim objClass2 As New Class
  8. With objClass2
  9. .query = "SELECT * FROM table where nummer=%1"
  10. .addparameter.add(objClass1.strVal) ' is een arraylist
  11. .generatelist()
  12. End With

In de class zit een sub die de parameters vult en de %1 moet vervangen met de objClass1.strVal.

Als ik de applicatie dan start dan is addparameter(0)(0) leeg. Hoe kan ik deze nou vullen?

Hoop dat mijn probleem een beetje duidelijk is... Is moeilijk uit te leggen  

Alvast bedankt

2 antwoorden

Gesponsorde links
Offline Abbas - 24/02/2009 10:08
Avatar van Abbas Gouden medaille

Crew .NET
Je kan er toch voor zorgen dat je met een functie of een methode uit de eerste klasse een waarde terugkrijgt in een variabele en dan die variabele gebruikt uit de tweede klasse. Als je dan de methode uit de eerste klasse 'Shared' maakt kan je het heel gemakkelijk aanroepen. Simpel voorbeeld:

  1. Public Class ClassOne
  2. Public Shared Function GetList() As String
  3. Return "BLAAT"
  4. End Function
  5. End Class
  6.  
  7. Public Class ClassTwo
  8. Public Shared Function ReturnSomeThing(ByVal input As String) As String
  9. Return input & " BLABLABLA"
  10. End Function
  11. End Class
En dan het gebruik:

  1. Dim naam As String = ClassOne.GetList()
  2. Dim result As String = ClassTwo.ReturnSomeThing(naam)

Dit is ook maar een heel simpel voorbeeld! 


Offline pororoca - 24/02/2009 16:39 (laatste wijziging 24/02/2009 16:41)
Avatar van pororoca Lid Helaas is dit niet helemaal wat werkt... Hieronder wat code

  1. With objAutofill1
  2. .objParent = textbox1
  3. .frmParent = Me
  4. .sqlSelect = "id, naam"
  5. .sqlFrom = "tabel1"
  6. .sqlWhere = "id=1"
  7. .sqlOrderBy = "2"
  8. .strSelectField = 1
  9. .strSaveField = 0
  10. .arrSearchFields = New String() {"naam"}
  11. .strConnectionString = connectionString
  12. .LoadAutofill()
  13. End With
  14.  
  15. With objAutofill2
  16. .objParent = textbox2
  17. .frmParent = Me
  18. .sqlSelect = "id, naam"
  19. .sqlFrom = "tabel2"
  20. .sqlWhere = "id=%1"
  21. ..arrParams.Add(New String() {objProject.strSelectedSaveData})
  22. .sqlOrderBy = "2"
  23. .strSelectField = 1
  24. .strSaveField = 0
  25. .arrSearchFields = New String() {"naam"}
  26. .strConnectionString = connectionString
  27. .LoadAutofill()
  28. End With


De uitleg
Autofill1 en 2 zijn classes die een autofill maken. Voor het geval niet bekend: Een autofill is een object dat lijkt op een dropdown, maar met een soort zoekfunctie (.arrSearchFields) in combinatie met een query in MySQL.
De class maakt een query, die lijkt op:
  1. SELECT id, naam FROM tabel1 WHERE id=1 and (naam like '%INVOER%')


Als je in de eerste autofill een selectie maakt dan wordt de strSaveField (0 = id) gevul met een waarde. Deze waarde wordt opgeslagen in de var strSelectedSaveData van die autofill.

Dat is de eerste autofill. Nu de tweede.
Deze query lijkt erg veel op de eerste, maar:
  1. SELECT id, naam FROM tabel1 WHERE id=1 and id=[i]strSelectedSaveData_van_autofill1[/i] (naam like '%INVOER%')


Snap je mijn probleem? In de tweede query moet dus strSelectedSaveData_van_autofill1 vervangen worden door de waarde uit autofill1, de var strSelectedSaveData om precies te zijn. En dat is wat mij niet lukt.

Ps. ivm bepaalde gegevens en data in de code kan ik het niet helemaal plaatsen. Zitten nml gevoelige zaken in.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.184s