Miten voin tehä DataGrid:iin linkin esim "http://www.google.fi"? Eli siis esim kun painetaan DataGrid:stä esim kohtaa Google, niin siirrytään googlen sivustolle. Eli siis avautuu oletus selain ja se siirtyy googeliin.
Joo, mutta miten tätä voi soveltaa DataGrid:ssä? Eli siis on Column, jonka nimi on "Nimi" ja siinä listassa olevat fieldit "Google","Ohjelmointiputka" ja "Altavista", jos painan "Google" avautuu "google.fi" ja jos taas "Ohjelmointipurka" niin avautuu luonnollisesti ohjelmointiputka.net jne jne...Eli pystyykö mitenkään?
Laaksosen ohjetta ja seuraavaa koodia soveltamalla saat tuon hoidettua. Jossain taulukossa tms. yhdistää nimet oikeisiin osoitteisiin.
Private Sub DataGrid1_MouseDown(Button As Integer, _ Shift As Integer, _ X As Single, _ Y As Single) Dim MyCol As Long Dim MyRow As Long On Error GoTo ErrorTerror 'otetaan virheet huomioon With Me.DataGrid1 MyCol = .ColContaining(X) 'selvitetään klikatun sarakkeen numero MyRow = .RowContaining(Y) 'sama rivin suhteen If MyCol >= 0 And MyCol < .Columns.Count Then 'tarkistetaan sarakkeen "oikeellisuus" If MyRow >= 0 And MyRow < .ApproxCount Then 'sama rivin suhteen 'ilmoitetaan klikatun solun arvo messageboxilla MsgBox .Columns(MyCol).CellValue(.RowBookmark(MyRow)) End If End If End With Exit Sub ErrorTerror: If Err.Number <> 0 Then MsgBox Err.Number & ": " & Err.Description: Err.Clear End Sub
Tämä ei ole oikein kätevä koodi, jos olisi tarkoitus siirtää linkki data tietokantaan ja ladata sieltä ulos..
Tarkoitushan siis oli klikata DataGridin solua, joka avaa selaimen ja siirtyy jollekkin sivulle? Väännetäänpä rautalangasta. Tällä kertaa et saa valmista koodia, vaan joudut soveltamaan, mitä tässä ketjussa on tullut ilmi.
Esimerkkistäni saat koodin, joka kertoo mitä olet klikannut DataGridissä. Tarvitset jonkin listan (array, tietokanta tms.), josta katsot löytyykö klikatulle vastaavaa osoitetta, minne siirtyä (Google tarkoittaa http://www.google.fi ja niin edelleen). Jos löytyy, niin Laaksosen esimerkillä avaat selaimen ja siirryt halutulle sivulle. Oliko tuossa jotain vaikeaa, vai enkö ymmärrä jotain?
Itse asiassa en tarvitse enää, koska kehittelin itse paremman tekniikan...
Aihe on jo aika vanha, joten et voi enää vastata siihen.