2016-05-31 4 views
0

отобразить отчет доступа, основанный на этом SQL:Цикл по строке на строках

SELECT DISTINCT Plan_charge.Num_utilisateur, RecupProjet(Num_utilisateur) AS LesProjets 
FROM Plan_charge; 

Функция «RecupProjet» в VBA является:

Public Function RecupProjet(Num_utilisateur As String) As String 

Dim res As DAO.Recordset 
Dim SQL As String 
'Selectionne les participant du projet 
SQL = "SELECT Num_EB_Tache FROM Plan_charge WHERE Num_utilisateur=" & _ 
      Chr(34) & Num_utilisateur & Chr(34) 
Set res = CurrentDb.OpenRecordset(SQL) 
'Concatene les différents enregistrement 
While Not res.EOF 
RecupProjet = RecupProjet & res.Fields(0).Value & " " 
res.MoveNext 
Wend 
'Enleve le dernier espace 
RecupProjet = Left(RecupProjet, Len(RecupProjet) - 1) 
'libere la mémoire 
Set res = Nothing 

End Function 

Вот пример отчета, который я отображается следующий код:

Image here

Теперь я хотел бы перейти линию по линии да ta в этом отчете и составить общее количество столбцов (Total_charge моей таблицы Plan_charge) в соответствии с столбцом Num_utilisateur (например, в SQL: WHERE Num_utilisateur = Me.Num_utilisateur.Value) и поместить общее количество в текстовое поле ChargeTotale.

У вас есть идеи?

ответ

0

Я хотел бы сделать это следующим образом:

SELECT DISTINCT Plan_charge.Num_utilisateur, 
RecupProjet(Plan_charge.Num_utilisateur) AS LesProjets, T.ChargeTotale 
FROM Plan_charge INNER JOIN 
(SELECT Num_utilisateur, SUM(Total_charge) AS ChargeTotale 
FROM Plan_charge 
GROUP BY Num_utilisateur) T 
ON Plan_charge.Num_utilisateur = T.Num_utilisateur 

Если вам не нужны никакие дополнительные поля из Plan_charge вы могли бы просто сделать:

SELECT Num_utilisateur, RecupProjet(Num_utilisateur) AS LesProjets, 
SUM(Total_charge) AS ChargeTotale 
FROM Plan_charge 
GROUP BY Num_utilisateur, RecupProjet(Num_utilisateur) 
+0

Спасибо за второй запрос! Но для первого у меня есть ошибка: указанное поле «Num_utilisateur» может ссылаться на несколько таблиц, перечисленных в предложении FROM вашего оператора SQL. – UnknowVBA

+0

исправлено. попробуй. – JJ32

+0

Отлично, он работает :) Последний вопрос для вас: добавить дополнительное поле в мой запрос, как вы это делаете? – UnknowVBA

Смежные вопросы