05. januar 2006 - 14:53Der er
38 kommentarer og 1 løsning
problem ved sql syntaks
Er der nogen der kan se fejl ved denne sætning
strSQL = "UPDATE Data SET Data.Y = (" & m & ")" & " * [X] + (" & b & ") " & _ " WHERE (((Data.Y) Is Null) AND ((Data.X) Is Not Null));" CurrentDb.Execute strSQL
Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
og det er så meningen at jeg vil finde de tomme felter og udfylde dem igenne interpolation.
derfor ser min kode sådan ud .
Sub sInterpolation() Dim strSQL As String Dim dbs As Database Set db = CurrentDb Call sRegressionLine strSQL = " UPDATE Data SET Data.Y = (" & m & ")" & " * [X] + (" & b & ") WHERE (((Data.Y) Is Null) AND ((Data.X) Is Not Null));" CurrentDb.Execute strSQL End Sub Sub sRegressionLine() Dim dbs As Database, rcs As Recordset Set dbs = CurrentDb() Set rcs = dbs.OpenRecordset("SELECT Sum(Data.X) AS SumX, Sum([X]*[X]) AS SumXX, Sum(Data.Y) AS SumY, Sum([X]*[Y]) AS SumXY, " & _ "Count(Data.X) AS N FROM Data " & _ " WHERE (((Data.X) Is Not Null) AND ((Data.Y) Is Not Null));")
m = (rcs!N * rcs!SumXY - rcs!SumX * rcs!SumY) / (rcs!N * rcs!SumXX - rcs!SumX ^ 2) b = (rcs!SumY * rcs!SumXX - rcs!SumX * rcs!SumXY) / (rcs!N * rcs!SumXX - rcs!SumX ^ 2) End Sub
får du en fejlmeddelelse fra SQL'en? du kan indsætte "debug.print strSQL" lige før "currentdb...." for at få strSQL udskrevet til Immediate vinduet. Det kan være fejlen er nemmere at se når variablerne er udfyldt.
Der er en syntaksfejl, fordi der mangler en operator i Forspørgelsesudtrykket "(0,1014)'[X]+(0,0267) Where(((data.y)is Null)AND((data.X)is Not Null));".
Ok den er modtaget. Variablerne m og b i din SQL - hvad skal de være eller hvor skal de komme fra? De er ikke at finde i proceduren, så de mangler i SQL'en.
Et spørgsmål - når du kører funktionen opdaterer du jo feltet Y. Var det noget at bruge en forespørgsel i stedet for - så slipper du for (definitivt) at opdatere Y.
Det skulle være i det tilfælde at du har brug for den "rå" tabel, som den er eller hvis der sker en fejl i opdateringen. Dette er nok ikke nødvendigt, hvis du har dine data et andet sted også, hvilket jeg tænker du har.
jeg vil bare gerne kunne interpolere alle de tomme felter i y, dvs alle de steder i y hvor der ikke står noget skal den opdatere dem så de får alle en værdi. dette vil nemlige gøre at diagrammet bliver pænt og ikke prikket.
i virkligeheden har jeg 8 Y felter. dvs. Y1 , Y2, Y3, Y4, Y5 osv. og jeg skal kunne interpollere alle de tom rum som findes i alle de Y ´er. men jeg tænkte at hvis jeg kunne få den første til at virke skulle resten bare være en løkke ?
Fino, ingen problem. Jeg laver det med MPA2-8 og TMPgraf, og så kan du måske rette det til hvis noget mangler.
Spørgsmål - jeg går ud fra at data i MPA2-8 er forskellige fra kolonne til kolonne. Skal den så ikke køre hele baduljen en kolonne ad gangen og udfylde MPA2 og så MPA3 osv?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.