Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Select sats i rs

Postades av 2007-05-08 21:30:16 - Torbjörn Karlberg, i forum visual basic - allmänt, Tråden har 14 Kommentarer och lästs av 829 personer

Hej jag behöver hjälp!

Jag vill att detta skall funka men får inte till det med ett rs bara.


Select id, nr, namn from tabell1 where typ = '" & txttyp & "'"
Select tid from tabell2 where datum = '" & txtdate & "'"

Skall kopplas ihop och visas i en listview

Kör i vb6 mott Access 2002.

/Tobbe


Svara

Sv: Select sats i rs

Postades av 2007-05-08 22:49:16 - Andreas Hillqvist

Vad finns det för förhållande mellan tallev 1 och 2?


Svara

Sv:Select sats i rs

Postades av 2007-05-09 07:09:45 - Torbjörn Karlberg

fel!



Svara

Sv:Select sats i rs

Postades av 2007-05-09 07:23:02 - Torbjörn Karlberg

Hej Andreas!


Det förhållande som finns i mellan Tabellerna är ett ID_No som är lika i båda.

Jag vill sortera ut en tid för aktuellt datum på en person och visa detta i en listview.

Tiderna ligger i en tabell och namn id_no ligger i en annan tabell på samma databas.


Tobbe


Svara

Sv: Select sats i rs

Postades av 2007-05-09 10:37:48 - Andreas Hillqvist

Jag antar att första frågan:

SELECT id, nr, namn
FROM tabell1
WHERE typ = @typ

Är till för att populera en lista eller något för att visa urvalet av person man kan välja.

Andra frågan bör innehålla ID_No
SELECT tid
FROM tabell2
WHERE datum = @date AND ID_No = @Id


Där parametern @Id tilldelas värdet från vald person?

Eller skall en lista över samtliga personer av typen @Typ visas
SELECT tabell1.id, tabell1.nr, tabell1.namn, tabell2.tid
FROM tabell1 LEFT JOIN 
    tabell2 ON (tabell1.id = tabell2.ID_No) AND (tabell2.datum = @date)
WHERE tabell1.typ = @typ

Denna fråga listar samtliga personer av typen @typ och deras tid för datumet. Saknar det tid är värdet null i kolumen tid.


Svara

Sv:Select sats i rs

Postades av 2007-05-10 19:36:27 - Torbjörn Karlberg

Hej Andreas!

Försökte få till något sådant men får felmess Run_time error '3296' kopplingsuttryck stöds inte

Set rs = dbs.OpenRecordset("SELECT Tek.id, Tek.nr, Tek.namn Tek,Tid, BTek.Total" & _
" FROM Tek LEFT JOIN" & _
" BTek ON (Tek.nr = BTek.nr) AND (BTek.datum = '" & LblDate & "')" & _
" WHERE Tek.nr = '" & txtnr & "'", dbOpenSnapshot)

Är jag helt ute och cycklar eller

Tabell Tek

ID
Nr
Namn
Tid

Tabell BTek
ID
Nr
Total
Datum

Redovisa i listview

ID Nr Namn Total (efter valt datum)


Kör VB6 och DAO 3,6 och Access 2002

/Tobbe


Svara

Sv: Select sats i rs

Postades av 2007-05-10 21:02:19 - Andreas Hillqvist

Skulle hjälpa om du förklarada datastrukturen och gav lite exempeldata.

SELECT Tek.id, Tek.nr, Tek.namn, Tek.Tid, BTek.Total
FROM Tek LEFT JOIN
    BTek ON (Tek.nr = BTek.nr AND BTek.datum = @Date)
WHERE Tek.nr = @nr


Jag tycker det är bättre att använda QueryDef:
Dim dbs As DAO.Database
Dim QDef As DAO.QueryDef
Dim rs As DAO.Recordset

Const sql As String = _
    "PARAMETERS @nr int, @date datetime;" + vbCrLf + _
    "SELECT Tek.id, Tek.nr, Tek.namn, Tek.Tid, BTek.Total" + vbCrLf + _
    "FROM Tek LEFT JOIN" + vbCrLf + _
    "    BTek ON (Tek.nr = BTek.nr AND BTek.datum = @Date)" + vbCrLf + _
    "WHERE Tek.nr = @nr"

    Set dbs = CurrentDb()
    
    Set QDef = dbs.CreateQueryDef("", sql)
    QDef.Parameters("nr") = txtnr
    QDef.Parameters("Date") = LblDate
    
    Set rs = QDef.OpenRecordset(dbOpenSnapshot)

Slipper du tänka på SQL inject.


Svara

Sv:Select sats i rs

Postades av 2007-05-10 23:16:59 - Torbjörn Karlberg

Hej Anderas!

Förlåt om jag inte fattar något av det du skrev om att använda QueryDef men har inte använt detta förut nytt för mig, men satt och testade ditt förslag som säkert funkar men undrar hur man ska ange sökvägen till databasen.


Får ta en riktig djupdykning i detta om det är bättre och snabbare.

Har letat som en liten gris om detta men hittar inget.


Hälsningar
Tobbe




Svara

Sv: Select sats i rs

Postades av 2007-05-10 23:39:54 - Andreas Hillqvist

Jag testade i Access.
Ersätt bara raden:

 Set dbs = CurrentDb()

Med:
 Set dbs = OpenDatabase("Sökväg till databasen, Här!")


Svara

Sv:Select sats i rs

Postades av 2007-05-11 21:55:30 - Torbjörn Karlberg

Hej och tack för hjälpen Andreas!


Vart ju ski-bra när man gör rätt.

Nu håller jag på och skall summera BTek.Total mot @nr och @Date.

"PARAMETERS @nr int, @date datetime;" + vbCrLf + _
"SELECT Tek.id, Tek.nr, Tek.namn, Tek.Tid, sum(BTek.Total) as isum" + vbCrLf + _
"FROM Tek LEFT JOIN" + vbCrLf + _
" BTek ON (Tek.nr = BTek.nr AND BTek.datum = @Date)" + vbCrLf + _
"WHERE Tek.nr = @nr"

Men får då Run_time error '3122'
Du försökte köra en fråga med en mängdfuntion som inte innehöll det angivna uttrycket 'id'

Kul och lära sig något nytt.

Men får det att funka med bara en fråga med jag vill ju ha det som ovan.

"PARAMETERS @date datetime;" + vbCrLf + _
"SELECT BTek.namn, sum(BTek.PerTotal)as iSum " + vbCrLf + _
"FROM BTek Where BTek.datum = @Date"

:-) Tobbe


Svara

Sv: Select sats i rs

Postades av 2007-05-12 00:15:50 - Andreas Hillqvist

Underfrågor kan hjälpa dig.

Testa:

"PARAMETERS @nr int, @date datetime;" + vbCrLf + _
    "SELECT Tek.id, Tek.nr, Tek.namn, Tek.Tid, Sub.isum" + vbCrLf + _
    "FROM Tek LEFT JOIN" + vbCrLf + _
    "    (SELECT BTek.nr, sum(BTek.Total) as isum" + vbCrLf + _
    "    FROM BTek" + vbCrLf + _
    "    WHERE BTek.datum = @Date" + vbCrLf + _
    "    GROUP BY BTek.nr) As Sub ON Tek.nr = Sub.nr" + vbCrLf + _
    "WHERE Tek.nr = @nr" 


Svara

Sv:Select sats i rs

Postades av 2007-05-12 00:37:31 - Torbjörn Karlberg

Perfekt tack


Svara

Sv: Select sats i rs

Postades av 2007-05-12 09:43:43 - Torbjörn Karlberg

Hej!

Varför funkar inte det inte att tilldela day ett värde i select strängen? markera man day i select så visar den värdet day="day5" men får felkod.

Run_time error '3061' För få parametrar angavs. 3 förväntades.


Dim day as string
dim X as integer

X = Weekday(MonthView1.Value, vbMonday)

day = "day" & X

"PARAMETERS @nr int, @date datetime;" + vbCrLf + _
"SELECT Tek.id, Tek.nr, Tek.namn, Tek.Tid, Tek.day, Sub.isum" + vbCrLf + _
"FROM Tek LEFT JOIN" + vbCrLf + _
" (SELECT BTek.nr, sum(BTek.Total) as isum" + vbCrLf + _
" FROM BTek" + vbCrLf + _
" WHERE BTek.datum = @Date" + vbCrLf + _
" GROUP BY BTek.nr) As Sub ON Tek.nr = Sub.nr" + vbCrLf + _
"WHERE Tek.nr = @nr"



:-/Tobbe


Svara

Sv:Select sats i rs

Postades av 2007-05-12 12:45:17 - Andreas Hillqvist

Vad vill du göra? Tabellen Tek innehåller ju ingen kolumn som heter day: Tek.day.

Hur anropar du SQL satsen? Du måste ju ange värde för @Date och @nr.


Svara

Sv: Select sats i rs

Postades av 2007-05-12 17:16:03 - Torbjörn Karlberg

Hej!

Jo tabellen Tek innehåller 7 st fält som heter day1 tom day7 där lagras tider per dag mån tom sön.

Jag gorde så här men inte den bästa lösningen.

MousePointer = vbHourglass
lsvMek1.ListItems.clear

Dim dbs As DAO.Database
Dim QDef As DAO.QueryDef
Dim rs As DAO.Recordset

Dim ObjLsv, i
Dim vntTemp
Dim X As Integer
Dim day As String

MakeTek

Const SQL As String = _
"PARAMETERS @Avd text, @date datetime;" + vbCrLf + _
"SELECT Tek.id, Tek.nr, Tek.name, Tek.Kat, Tek.day1, Tek.day2, Tek.day3, Tek.day4, Tek.day5, Tek.day6, Tek.day7, Sub.isum" + vbCrLf + _
"FROM Tek LEFT JOIN" + vbCrLf + _
" (SELECT BTek.nr, sum(BTek.Total) as isum" + vbCrLf + _
" FROM BTek" + vbCrLf + _
" WHERE BTek.datum = @Date" + vbCrLf + _
" GROUP BY BTek.Anstnr) As Sub ON Tek.nr = Sub.Anstnr" + vbCrLf + _
"WHERE Tek.Avd = @avd"

Set dbs = OpenDatabase(sDataS2kb, False, False, _
";pwd=data@wd")



Set QDef = dbs.CreateQueryDef("", SQL)
QDef.Parameters("date") = LBLDATE
QDef.Parameters("Avd") = lblAvd
Set rs = QDef.OpenRecordset(dbOpenSnapshot)

Debug.Print "Dag = " & day
X = Weekday(MonthView1(0).Value, vbMonday)

day = "day" & X

Do Until rs.EOF

Set ObjLsv = lsvMek1.ListItems.Add()
ObjLsv.Text = rs.Fields("Id").Value & vbNullString
ObjLsv.SubItems(1) = rs.Fields("nr").Value & vbNullString
ObjLsv.SubItems(2) = rs.Fields("Name").Value & vbNullString
ObjLsv.SubItems(3) = rs.Fields("Kat").Value & vbNullString
ObjLsv.SubItems(4) = rs.Fields("iSum").Value & vbNullString
ObjLsv.SubItems(5) = rs.Fields(day).Value & vbNullString
Set ObjLsv = Nothing

rs.MoveNext
Loop

rs.Close
Set rs = Nothing
dbs.Close
Set dbs = Nothing

:-) Tobbe


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
476
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies