Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: DBCombolla tietueen valinta

Toitsu [04.08.2007 18:31:19]

#

Eli kun tietokannasta haetaan vaikka nimen perusteella dbcomboon dataa, niin miten saan dbcombosta tehtävän valinnan kautta data2:n hakemaan tietokannasta haluttavan tiedon? Eli dbcombolla pitäisi jotenkin käskyttää data2:sta?

neau33 [04.08.2007 19:33:40]

#

Moikka Toitsu!

Tässä pientä vinkkiä...

Private Sub DataCombo1_Click(Area As Integer)
Dim strKysely As String
strKysely = "Select * From Taulu Where ID = " & _
DataCombo1.Value 'esim.
Data2.RecordSource = strKysely
Data2.Refresh
End Sub

Tsekkaa

neau33 [09.08.2007 12:07:15]

#

Moikka taas Toitsu!

mikäli et ole vielä toteuttanut 'combo' viritelmääsi niin tässä olis yx malli

'Formille yx Data kontrolli, yx ComboBox ja yx MSFlexGrid
'aseta MSFlexGrid1 DataSource ominaisuudeksi Data1

Private Sub Form_Load()

  Dim filename As String
  filename = "BIBLIO.MDB"

  Dim db As Dao.Database
  Dim rs As Dao.Recordset

  Set db = OpenDatabase(filename)
  Set rs = db.OpenRecordset("Select * From Publishers")

   If rs.RecordCount > 0 Then
    rs.MoveFirst
     Do While Not rs.EOF
      Combo1.AddItem rs!Name
      rs.MoveNext
     Loop
   End If

    rs.Close: db.Close
    Set rs = Nothing: Set db = Nothing
    Combo1.ListIndex = 0
    Data1.DatabaseName = filename
    Data1.RecordSource = Publishers
    Data1.RecordsetType = 1

End Sub

Private Sub Combo1_Click()

  Dim strKysely As String
  strKysely = "Select * From Publishers Where Name = '" & _
  Combo1.Text & "';"
  Data1.RecordSource = strKysely
  Data1.Refresh

End Sub

 ' Mikäli käytät DataCombo'a niin SQL on...

 ' "Select * From Taulu Where Sarake = '" &  DataCombo1.BoundText & "';"

 '... joudut myös käyttämään Adodc/DataGrid yhdistelmää

neau33 [09.08.2007 17:21:59]

#

Moikka taas Toitsu!

...vielä pikku lisäys, elikä SQL toimii paremmin ilman semi-hipsuja...mikäli taulussa on jossain nimessä hipsu kuten esim. O'Reilly tms...

strKysely = "Select * From Publishers Where Name = " & _
             Chr$(34) & Combo1.Text & Chr$(34) & ";"

Grez [11.08.2007 15:27:59]

#

Mikä ihmeen viritys? Tai jos esitän asian niin, että mitenköhän toi toimii, jos nimessä onkin vastaavasti lainausmerkki?

Ehkä toimivampi vaihtoehto olisi

strKysely = "select * from Publishers where [Name]='" & _
             Replace(Combo1.Text,"'","''")& "';"

Siis oletuksella että tietokanta on esimerkiksi MS SQL Server tai MS Access.

(btw, mikä on semi-hipsu?)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta